グロースエンジニアのブログ

Ruby on Rails エンジニアです!開発に当たって勉強したことをまとめていこうと思います!

modelにおけるwhereとfindの違い分からない 〜Rails4〜

さっきまで詰まっていたが、とりあえず動いたのでメモしておきます。

modelで id の配列があります。

これを以下の find と where の2通りで書いた場合の結果が異なり、使えるメソッドも異なりました。

こちらについて、教えてほしいです。。。

# @learning_ids はidの配列です。
    @l_unit_names = Lesson.find(@learning_ids).group('unit_item_name')
    @l_unit_names = Lesson.where(:id => @learning_ids).group('unit_item_name').count

find でやった場合、【group】メソッドが使えず、where の場合は使えました。

    @l_unit_names = Lesson.find_all_by_id(@learning_ids).group('unit_item_name')

上記でもエラーが出てしまい使えず。返ってくる値とgroupがどういう時に使えるかってところが分かっていないようでした。

この辺りは再度復習も兼ねてどこかで勉強したいと思いますが、まとまったサイトなどあれば教えてもらいたいです。。。