我可以和你分享我的头衔吗?我正在尝试使用这段代码进行搜索。 (带箭头的线)
def index
search = params[:user][:subject_ids]
----> @users = User.includes(:subjects).where(role: 'instructor')
@user = current_user
end
这是一个多对多的关联。我有用户,入学和科目。我有教师,他们已经报名参加了1-5门课程。当我进行搜索时,我会获得所有教师的列表,而不仅仅是那些教我所查询的主题的教师。
不知道从哪里开始。
协会
class User < ActiveRecord::Base
has_many :enrollments, dependent: :destroy
has_many :subjects, through: :enrollments
end
class Subject < ActiveRecord::Base
has_many :enrollments, dependent: :destroy
has_many :users, through: :enrollments
end
class Enrollment < ActiveRecord::Base
belongs_to :user
belongs_to :subject
end
感谢您的时间。
答案 0 :(得分:3)
您忘记将搜索参数放在查询中。 你的行应该是这样的:
@users = User.includes([:enrolments,:subjects]).where("user.role" => 'instructor', "subjects.id" => search)