我使用的是filterrific gem,需要确定以下内容。
我有3张桌子。我希望范围用户模型,它返回所有大学名称。所有用户都通过大学。大学是这里的联系表。我的模型如下(Rails 4.2):
class User < ActiveRecord::Base
has_many :colleges
has_many :universities, :through => colleges
# my current scope which is not working at all
scope :user_university, -> (user_university){joins(colleges: [ {university: :name}]).where("universities.name = ? ", user_university)}
end
class Colleges < ActiveRecord::Base
belongs_to :user
belongs_to :university
end
class University < ActiveRecord::Base
has_many :colleges
has_many :users, :through => colleges
end
我一直在收到错误,而且我不确定如何通过连接表来确定模型的范围。
答案 0 :(得分:3)
试试这个:
scope :user_university, -> (university_name) {
joins(colleges: :university).where(universities: {name: university_name})
}
我将参数user_university
重命名为university_name
btw,user_university
有点令人困惑!