我正在尝试对活动记录进行基本搜索,但由于 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 中,我正在为我的 Sections 模型创建一个基本搜索。假设我想搜索具有给定名字的教师的所有部分。
我已经使用上面的范围进行了尝试,但我从 *Section.teacher_fname_scope* 得到的只是一个空数组。
(我实际上将有多个字段,让用户还可以搜索部门和类大小等部分字段,因此我可能会创建多个范围并最终将它们链接在一起,例如上述搜索也受部门和类大小的限制,但我的理解是范围是正交的,所以这与上面的问题无关。)
谢谢你的帮助。