我對添加[:session]給params感到困惑。它似乎也打破了我的網站。有人可以解釋這對我有什麼作用嗎?Ruby on Rails教程第9章
class SessionsController < ApplicationController
.
.
.
def create
user = User.find_by_email(params[:session][:email])
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
.
.
.
end
錯誤消息:
1)認證登入與無效信息 故障/錯誤:前{click_button 「登錄」} NoMethodError: 未定義的方法[]' for nil:NilClass # ./app/controllers/sessions_controller.rb:7:in
創建」 #(EVAL):2 :在'
EDIT click_button' # ./spec/requests/authentication_pages_spec.rb:18:in
塊(4級)8/2
我相信問題涉及一種SW從form_for癢到form_tag。我失去了交換機會話的參考,因爲我無法弄清楚如何正確包含它。如果任何人有任何關於這個問題的建議,將不勝感激。我想知道是否有一個實際的理由讓它成爲params [:session] [:email]而不是它只是爲了組織?
new.html.erb
<% provide(:title, "Sign in") %>
<h1>Sign in</h1>
<div class="row">
<div class="span6 offset3">
<%= form_tag sessions_path do %>
<%= label_tag :email %>
<%= text_field_tag :email %>
<%= label_tag :password %>
<%= password_field_tag :password %>
<%= submit_tag "Sign in", class: "btn btn-large btn-primary" %>
<% end %>
<p>New user? <%= link_to "Sign up now!", signup_path %></p>
</div>
</div>
您可以發送您的應用程序/會議/ create.html.erb嗎?您還可以在創建操作的頂部添加'puts params'並將結果呈現給我們。 – Dougui 2012-08-01 18:34:47
我假設你指的是我現在包含的new.html.erb。 – Roger 2012-08-02 16:46:18