如何在.joins查询上使用模型范围

时间:2014-01-11 01:56:58

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我有2个型号 - User和User_detail。

表:

User
|id|

User_detail
|id|user_id|active|

UserDetails模型:

class UserDetails < ActiveRecord::Base
    belongs_to :user

    scope :active, -> { where("active is null or active = true") }
end

如何在查询中使用此范围以仅获取活动用户?

这样的事情:

 User.joins(:user_details).active

2 个答案:

答案 0 :(得分:0)

这应该有效:

User.joins(:user_details).merge(UserDetails.active)

查看http://asciicasts.com/episodes/215-advanced-queries-in-rails-3了解更多ActiveRecord技巧!

答案 1 :(得分:0)

这似乎有效:

User.joins(:user_details).merge(UserDetails.active)

参考:Ruby / Rails - Can I use a joined table's scope(or class method) as part of my WHERE clause?