2014-02-13 87 views
0

代碼如下。用戶是我數據庫中的名稱,但它表示它不應該是未定義的方法。這只是我的數據庫中的一個字符串值。我已經看過關於這個錯誤的所有其他帖子,但他們的解決方案並不適合我。 (我用的腳手架順便說一句,所以我不知道這是否會影響任何東西)Ruby on Rails:未定義的方法`user'for#<ActiveRecord :: Relation :: ActiveRecord_Relation_User:0x4451148>

def self.login(user, password) 
    the_user = self.where(user: user, password:password) 
    if the_user.empty? 
     return ERR_BAD_CREDENTIALS 
    else 
     return the_user.user 
    end 
    end 

回答

3

這一行:

the_user = self.where(user: user, password:password) 

應該是:

the_user = self.where(user: user, password:password).first 

沒有的.first你會得到什麼是一個關係對象,可用於鏈接進一步.where條款(或類似的方法)。您必須使用.first或其他類似each來實際從數據庫中獲取記錄。

相關問題