2012-07-13 48 views
0

我有愚蠢的問題:simple_form_for而params

= simple_form_for :session, url: :sessions do |f| 
    = f.input :email 
    = f.input :password 
    = f.button :submit, 'Sign in!' 

def create 
    user = User.find_by_email(params[:email]) 
    if user && user.authenticate(params[:password]) 
     session[:user_id] = user.id 
     redirect_to root_path, :notice => "Logged in!" 
    else 
     flash.now.alert = "Invalid email or password" 
     render "new" 
    end 
end 

它看起來像我在PARAMS沒有電子郵件地址和密碼,因爲在軌安慰一切工作良好。有人可以解釋我做了什麼:會話意味着我的形式,我怎樣才能得到我的電子郵件和密碼?

+5

一個小提示:通過在'create'方法的'render:text => params.to_s和return'的開頭放入以下內容,可以將'params'轉儲到瀏覽器中。這很可能需要引用'params [:session] [:email]'和'params [:session] [:password]' – deefour 2012-07-13 13:05:49

回答

1

(因爲它似乎在大多數移動這一個答案同意我所建議的是修復到OP的問題)

小提示:你可以轉儲params到瀏覽器中通過在創建方法render :text => params.to_s and return的開頭添加以下內容。

您可能需要在您的create方法中參考params[:session][:email]params[:session][:password]

form_for的第一個參數中的符號是well documented;見通用form_for