当天的新问题:
我正在尝试选择具有此条件的所有用户,然后对每个用户执行操作:
User.find(:all).select { |u| u.organizations.count > 0} do |user|
除此之外,这不是正确的方法。不完全确定正确的语法是什么。
任何红宝石家伙都会提供新手吗?
答案 0 :(得分:2)
要对集合的每个元素执行操作,请使用each
方法,如下所示:
User.find(:all).select { |u| u.organizations.count > 0}.each do |user|
答案 1 :(得分:2)
您可能最好将select折叠到查询中:
User.find(:all, :conditions => "organization_id IS NOT NULL").each do |user|
这只会从数据库中获取相关结果,因此应该检索并丢弃不必要的数据。
修改强>
正如评论中所建议的那样,假设一个称为成员资格的联接模型(用户has_many :organisations, :through => :membership
)...
User.all(:joins => "inner join memberships on memberships.user_id = users.id")