rails选择方法和范围

时间:2013-04-29 00:45:44

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

在我的用户模型上,我有这些范围方法

class User < ActiveRecord::Base
    scope :active, where(:deactivated => false)  
 end 

我正在使用Amistad gem来处理用户之间的友谊,当我想要获取所有活跃用户时,我使用select方法。

   @user =User.find(params[:id])
   @friend =user.friends.select { |friend| friend.deactivated == false }

它工作得很好但我的postgreSql数据库上有很多很多查询,当我使用时在我的控制台上:

   User.active 

它给了我正确的价值,但是当我使用时。

User.first.friends.active 

它给了我。

  NoMethodError: undefined method `active' for #<Array:0x5eefa68>

您是否还有其他解决方案需要减少数据库查询?

0 个答案:

没有答案