0

多くのメンバーと多くのタスクを持つプロジェクト モデルがあるとします。

class Project < ActiveRecord::Base
  has_many :memberships
  has_many :members, :through => :memberships, :class_name => 'User'
  has_many :tasks
end

プロジェクトでタスクが作成されると、どのユーザーがそれを作成したかが記録されます。現在のプロジェクトのメンバーであるユーザーのみが

class Task < ActiveRecord::Base
  belongs_to :creator, :class_name => 'User'
  belongs_to :project
end

私のprojects#showアクションでは、プロジェクトを見つけて、そのメンバー、タスク、およびその作成者とともに表示したいと考えています。クエリを高速化するために、これらのものを熱心にロードしようとします。

私は検索メンバーを熱心に読み込んでおり、タスクにはメンバーである作成者のみを含めることができるので、タスクの作成者を具体的に含める必要はないと考えていますか?

言い換えれば、私はこれを行うことができます:

Search.includes(:members, :tasks)

または私はこれを行う必要があります:

Search.includes(:members, :tasks => :creator)
4

1 に答える 1

1

:creator を明示的に含める必要があると思います。そうしないと、クリエイターにアクセスするときにクエリが実行されます。

于 2012-05-23T17:37:52.540 に答える