Отказ от ответственности: супер новый для рельсов. Я использую Rails 3.2
В любом случае, я пытаюсь создать форму для входа в систему Merchants. У меня есть MerchantSessionsController, который пытается создать новый сеанс на основе ввода формы входа:
Это то, что у меня есть в моем
приложение / просмотров / merchant_sessions / new.html.erb
<%= form_for(:merchant_session, :url => merchant_sessions_path) do |f| %>
<div class="field">
<%= f.label :userName %><br />
<%= f.text_field :userName %>
</div>
<div class="field">
<%= f.label :password %><br />
<%= f.password_field :password %>
</div>
<div class="actions">
<%= f.submit "Sign in" %>
</div>
<% end %>
Файл app \ controllers \ merchant_sessions_controller.rb содержит:
def create
merchant = Merchant.find_by_userName(params[:userName])
if merchant && merchant.authenticate(params[:password])
merchant_session[:merchant_id] = merchant.id
redirect_to root_url, :notice => "Merchanthas been logged in"
else
flash.now[:error] = "Invalid username or password."
@title = "Merchant Signin"
render "new"
end
end
К сожалению, params [: userName] и params [: password] продолжают передаваться как nil, хотя в отладочном выводе на странице входа торговцев я вижу, что userName и пароль определенно передаются.
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
utf8: ✓
authenticity_token: 8WsOviJyY1kktPq9dDO+OFePdSKf2uGLY3Pnc4bU2tc=
merchant_session: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
userName: asd
password: ddsad
commit: Sign in
action: create
controller: merchant_sessions
Я также пытался получить доступ к параметру params [: action], который работал нормально. Почему параметры userName и password равны нулю? Я изменил имя MerchantSessionsController (раньше это просто SessionsController), но я не думаю, что это должно быть проблемой