2011-01-22 107 views
0

为我的用户的模式,我有:导轨 - 命名范围

class User < ActiveRecord::Base 
    has_many :group_users, :class_name => "User", :finder_sql => 'select DISTINCT u.* from users u join permissions pp on pp.user_id=u.id join spaces p on pp.space_id=p.id where space_id in (select space_id from permissions pp2 where user_id=#{id}) and pp.user_id != #{id}' 

我如何可以访问像一个范围:

scope :usersInMySpaces, lambda { |user| 
     group_users 
    } 

感谢

+3

您只需要知道:http://www.railway.at/2010/03/09/named-scopes-are-dead/ – Zabba 2011-01-22 06:09:37

回答

1

你不能而且也没有点。 has_many关联在许多情况下的作用类似于作用域,但在这个关联中,finder_sql非常复杂,无法与其他任何sql作为作用域结合使用。