我有三个相互影响的模型 -
Users has_one CommonApp
CommonApp has_many Cities
我在用户索引页面上有一个小表单,并希望根据该用户的关联common_app是否与@users
的城市相关联来过滤params[:city_id]
。
现在我有
@city = City.find(params[:city_id]) if params[:city_id] && params[:city_id] != "0"
@users = @users.includes(:cities).where(cities: { id: @city }) if @city
我知道这是错误的,因为@users没有关联到:cities。
我如何更改以上内容,以便了解@用户的common_app与城市的关联?
答案 0 :(得分:1)
最简单的方法可能是允许用户模型中的用户直接访问城市:
has_many :cities, through: :common_app
然后你就可以使用过滤代码了。