2010-03-17 61 views

回答

2

ActiveRecord根據數據庫中的列創建動態查找器。因此,舉例來說,如果你有一個用戶名屬性的用戶則ActiveRecord的創建一些動態拾得:

find_by_username 
find_or_initialize_by_username #=> calls new if not found 
find_or_create_by_username #=> calls create if not found 

可以串幾個屬性在一起像

find_by_username_and_email 

要回到你的問題 - 我懷疑你沒有運行一些必要的遷移,將facebook_id添加到數據庫中的用戶表中,因此ActiveRecord沒有將facebook_id的動態查找器添加到類中。

+0

我有這個facebook_id沒有被添加到數據庫相同的問題。我已經運行bundle exec rake db:migrate並擁有2個數據庫。我也在使用SQLite。這可能是爲什麼?我要麼得到上面提到的錯誤,要麼'當你沒有想到它時,你有一個零對象! 您可能預期了Array的一個實例。 評估nil時出錯[]'... 當我改變了一下代碼,我認爲這意味着我的信息數組是空的。我認爲這使我陷入這種推理。 – Tony 2011-12-14 09:26:46