0

伙计们,我正在尝试查找业务列等于 false 的所有用户。业务列在另一个模型中,所以我有2个模型用户模型和信息模型。我正在尝试使用 Arel 创建自己的搜索。这是我的用户模型上的方法:

def self.search
        users = self.arel_table

        information = Information.arel_table

        users.
            join(information).on(users[:id].eq(information[:user_id])).
            where(information[:business].eq(false))
end

我没有看到错误,但我收到了这个错误:

NoMethodError in Users#index

Showing
/Users/jeanosorio/rails_projects/rutalaboral/app/views/users/index.html.erb
where line #1 raised:

undefined method `each' for `#<Arel::SelectManager:0x007ffcff1c2e20>`

这是我从用户控制器执行的操作

def index
   @users = User.search()
end

在此先感谢您的帮助

4

1 回答 1

1

您是否有任何理由尝试使用 Arel 而不是 ActiveRecord?在 ActiveRecord 中,您将执行以下操作:

User.joins(:information).where(Information.arel_table[:business].eq(false))
于 2012-12-17T20:09:16.597 回答