2013-12-16 16 views
0

現在我正在嘗試對用戶進行身份驗證。這個過程起作用。現在,用戶的登錄名具有字段用戶名和密碼。如果用戶輸入正確的信息,它就可以工作。如果用戶輸入有效的用戶名和密碼不正確,則可以使用。如果用戶輸入無效的用戶名,則不起作用。這是我在會話控制器中創建的操作:當無效用戶發佈rails會話時

def create 
    user = User.find_by_username(params[:username]) 
    redirect_to root_url if user == nil 
    if user.password == params[:password] 
     session[:user_id] = user.id 
     redirect_to user_path(user.id), notice: "Logged in!" 
    else 
     flash.now.alert = "not logged in" 
     redirect_to root_url 
    end 
    end 

我得到的錯誤是沒有用戶的方法密碼。我知道這一點,把在該行

redirect_to root_url if user == nil 

,我也有行

redirect_to root_url unless user.password 

上述這些問題都沒有工作,沒有回重定向到根網址。

+0

形式是一個登錄表單。該用戶正在管理員中創建。我只是想驗證它是一個用戶。問題在於如果在create action中的用戶類用戶中未找到用戶名,則變爲nil。考慮到這一點,我試圖說如果用戶是零,然後回到根網址。這部分不起作用。 – user2184718

+1

'if user && user.password == params [:password]'???? –

+0

就是這樣......謝謝 – user2184718

回答

0

這應該這樣做

if user && user.password == params[:password]