1

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

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>

对于我需要更少的数据库查询,您还有其他解决方案吗?

4

0 回答 0