find_by_sqlを使用せずにこの関係を照会する方法を理解しようとしています
class User < ActiveRecord::Base
has_many :lists
end
class List < ActiveRecord::Base
has_many :list_items
belongs_to :user
end
class ListItem < ActiveRecord::Base
belongs_to :list
belongs_to :item
end
class Item < ActiveRecord::Base
has_many :list_items
end
これは私たちが使用しているものであるはずですが、user.rbのfind_by_sqlではなくどうすればよいですか?
def self.find_users_who_like_by_item_id item_id
find_by_sql(["select u.* from users u, lists l, list_items li where l.list_type_id=10 and li.item_id=? and l.user_id=u.id and li.list_id=l.id", item_id])
end
いくつかの異なるインクルード/結合/マージのシナリオを試しましたが、私がやろうとしていることを理解できません。
どうも