アクティブなレコードで基本的な検索を実行しようとしていますが、has_and_belongs_to_many の関係が原因で問題が発生しています。以下は、私が作成したレコードとスコープです。
Class Section << ActiveRecord::Base
has_and_belongs_to_many :teachers
attr_accessible :department, :class_size
scope :department_scope, lambda { |dept| where("department = ?", dept) }
scope :teacher_fname_scope, lambda { |n| joins(:teachers) & Teacher.has_first_name(n) }
end
Class Teacher << ActiveRecord::Base
has_and_belongs_to_many :sections
attr_accessible :first_name, :last_name
scope :has_first_name, lambda { |fname| where("first_name = ?", fname) }
end
Rails 3.2 では、セクション モデルの基本的な検索を作成しています。特定の first_name を持つ教師を含むすべてのセクションを検索したいとします。
上記のスコープを使用して試してみましたが、 *Section.teacher_fname_scope* から返されるのは空の配列だけです。
(実際には複数のフィールドを用意して、ユーザーが department や class_size などの Section フィールドも検索できるようにするため、おそらく複数のスコープを作成し、最終的にそれらを連鎖させます。たとえば、上記の検索は、department や class_size によっても制限されますしかし、私の理解では、スコープは直交しているため、これは上記の質問には関係ありません.)
助けてくれてありがとう。