2012-12-17 67 views
0

夥計們我試圖找到所有與業務列等於false的用戶。業務專欄在另一個模型中,所以我有2個模型用戶模型和信息模型。我正在嘗試使用Arel創建我自己的搜索。這裏是我的用戶模型的方法:我沒有看到錯誤使用Arel進行Rails搜索

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 

在此先感謝您的幫助

回答

1

是否有任何理由您嘗試使用Arel而不是Active記錄?在ActiveRecord的,你會做到以下幾點:

User.joins(:information).where(Information.arel_table[:business].eq(false)) 
+0

感謝肖恩,其原因是,我不知道如何在ActiveRecord的做到這一點,一個朋友告訴我,我必須使用AREL:S – Jean

+0

啊,疑難雜症。不,你一定能夠爲此使用ActiveRecord。通常,您可以使用ActiveRecord執行大部分操作,然後下降到Arel以執行更復雜的查詢。 –

+1

明白了,...我會嘗試閱讀更多關於如何使用ActiveRecord來做到這一點。再次感謝 – Jean