元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

ActiveRecord

Ruby on Rails 4.2 のActiveRecordでMovable TypeのデータをQueryInterfaceとかArelとかで扱ってみた

この記事はMovable Type Advent Calendar 2015 - Adventar20日目の記事のはずでした。忘れてました。ごめんなさい。 ふと思い立って現段階の最新のRailsでMTのデータを扱う実験をしてみました。 Railsで非RailsなDBを扱うサンプルにもなるかも。 サンプルコ…

ActiveRecordモデルにincludeしたりするModuleの結合テスト

テストのモデルを作って使う方法メモ。 参考にしたコード CarrierWave::ActiveRecordのテスト carrierwave/activerecord_spec.rb at 7d4713f251399ca6f107e0660616cd7b9494929c · carrierwaveuploader/carrierwave · GitHub require 'rails_helper' # インタ…

ActiveRecordでサブクエリのJOIN

たとえば 「ユーザー1がコメントした記事の中で、コメントのlike数が1以上の記事を検索する」 SELECT `posts`.* FROM `posts` INNER JOIN ( SELECT `comments`.* FROM `comments` WHERE `comments`.`user_id` = 1 AND `comments`.`likes_count` >= 1 ) liked…

ActiveRecord で limit とか offset とかしたコレクションから条件を満たす全件数を取得する

posts = Post.where(author: author).limit(limit).offset(offset) posts.count # => 0 ~ limit posts.except(:limit, :offset).count # => 0 ~ Rails3からexceptで適用済みの条件式を除外できる。 except - リファレンス - Railsドキュメント

ActiveRecord::Relation から ActiveRecordクラス を得るには klass でOK?

posts= Posts.limit(limit).offset(offset) posts.klass # => Post(id: integer, title: string, body: text)