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

ActiveRecord の代わりに Arel を使用しようとしている理由はありますか? ActiveRecord では、次のようにします。

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