2013-03-17 19 views
1

我有以下模式:如何通過用戶的電子郵件地址篩選rails對象?

class Iosapp < ActiveRecord::Base 
    belongs_to :user 
    attr_accessible :active, :featured, :name, :partner 

    validates :name, :presence => true 
end 

我說引用與在視圖中的Iosapp對象相關聯的用戶:

<%= @iosapp.user.email %> 

在控制器中,我現在有下面是什麼。但是,如何更改它以便它只返回具有特定電子郵件地址的對象(例如[email protected])?

@iosapps = Iosapp.all 

回答

1

試試這個:

@iosapps = Iosapp.joins(:user).where(:users => {:email => '[email protected]'}).all 

編輯:

或者,如果你想用iosapp數據返回的用戶數據,那麼這樣的:

@iosapps = Iosapp.includes(:user).where(:users => {:email => '[email protected]'}).all 
+0

我得到一個錯誤說:沒有這樣的列:user.email:選擇 「iosapps」 * FROM 「iosapps」 INNER JOIN 「用戶」 ON 「用戶」, 「ID」=「IO sapps」。 「user_ID的」 WHERE 「用戶」, 「電子郵件」= '[email protected]' – sharataka 2013-03-17 17:54:48

+2

它應該是'users.email'不'user.email',你可能需要構造加入其中,像這樣'。 where(「users.email =?」,'[email protected]')' – house9 2013-03-17 17:59:36

+0

修正了錯字,再試一次。這個錯字正如house9所建議的那樣。 – Sam 2013-03-17 18:01:27

相關問題