このようなクエリにネストされたモデルを含めるだけの場合
@projects = current_user.projects.all(include: :reviews)
すべて大丈夫です。ただし、レビュー モデルにはスコープがあり、上記のクエリで実装する必要があります。私はこれを試しています
@projects = current_user.projects.all(include: :reviews.unreaded)
とエラーになります。これを行う正しい方法は何ですか?
このようなクエリにネストされたモデルを含めるだけの場合
@projects = current_user.projects.all(include: :reviews)
すべて大丈夫です。ただし、レビュー モデルにはスコープがあり、上記のクエリで実装する必要があります。私はこれを試しています
@projects = current_user.projects.all(include: :reviews.unreaded)
とエラーになります。これを行う正しい方法は何ですか?
1 つのオプションは、スコープに基づいて関連付けを作成することです。
@projects = current_user.projects.all(include: :unread_reviews)
次にunread_reviews
、大まかに関連付けを作成します。
class Project < ...
has_many :unread_reviews, :conditions => ['read=?', true], :class_name => "Review"
has_many
(もちろん、上記をあなたの協会の詳細に置き換えてください。)
この手法については、関連ドキュメントで説明されています。