2013-03-31 67 views
0
def create 
    user = User.find_by_name(params[:name]) 

    if user and user.authenticate(params[:password]) 
    session[:user_id] = user.id 
    redirect_to admin_url 
    else 
    redirect_to login_url, alert: "Invalid user/password combination" 
    end 

end 

這裏爲什麼用戶被聲明爲局部變量而不是實例變量@user?爲什麼我們不在認證中使用@var?

回答

2

可能因爲視圖不需要訪問user對象。它只是實例化它,看它是否是一個有效的用戶,並且正確地進行了身份驗證,然後重定向到管理頁面。

0

因爲你不一般需要訪問的動作

0

答案是,因爲沒有必要爲這個動作視圖之外的用戶變量。該動作包含一個if else塊,它們都重定向,因此對實例變量沒有用處。

相關問題