我有一个简单的rails应用程序,有三个模型,我想要做的是查询不同的模型。
我的应用模型如下:
user.rb:
has_many :forms
has_one :user_info
user_info.rb
attr_accessible :state
form.rb:
attr_accessible :status
belongs_to :user
我想要做的是查看有多少用户具有特定状态,以及谁处于特定状态。基本上,我试图做这样的事情: .where(“status =?AND state =?”,“open”,“AZ”)
有没有rails方式来进行这种查询? 在此先感谢您的帮助,
答案 0 :(得分:2)
将其他表加入User
表,然后在where
子句中使用它们:
User.joins(:user_info, :forms).where(user_infos: {state: "open"}, forms: {state: "AZ"})
答案 1 :(得分:1)
我最近为这个目的做了一个宝石:
有了它,它看起来像:
User.where_assoc_exists(:user_info, state: "open")
.where_assoc_exists(:forms, state: "AZ")
它解决了许多潜在的问题,这些问题可以通过连接来实现。我整整都专门针对这些问题:Alternatives problems