代码之家  ›  专栏  ›  技术社区  ›  JoshReedSchramm

在查找条件中使用连接模型属性的Rails

  •  0
  • JoshReedSchramm  · 技术社区  · 14 年前

    我正在使用:has_many,:通过关联链接两个模型,用户和地点

    看起来像这样-

    用户:

      has_many :user_places
      has_many :places, :through=>:user_places
    

    就位:

      has_many :user_places
      has_many :users, :through=>:user_places
    

    在用户位置

      belongs_to :user
      belongs_to :place
      belongs_to :place_status
    

    在最后一张纸上写下地点的状态。

    我想写一个查找,返回与具有特定位置\状态\ ID的用户关联的所有位置。

    place_status_id位于join模型上,user_place。

    所以基本上我想要

    User.places.where(:place_status_id=>1)
    

    (Rails 3)

    但是我会得到一个错误,因为地点状态不在地点模型上。

    有什么想法吗?谢谢大家。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Ju Nogueira    14 年前

    我相信你可以这样做

    @user.places.joins(:user_places).where(:user_places => {:place_status_id => 1})
    

    我从未使用过Rails 3,所以如果有任何错误,我很抱歉。