2015-02-13 6 views
0

Я работаю над реализацией некоторой базовой аутентификации пользователя в Rails 4, следуя этой статьеБазовая аутентификация пользователя в Rails

http://nycda.com/blog/basic-user-authentication-model-in-rails-4/

Вместо того, чтобы использовать форму ERB при условии, я воссоздал (по крайней мере, я думал, сделал) процесс с simple_form, и запрос передается, когда я пытаюсь войти в следующем:

SELECT `users`.* FROM `users` WHERE `users`.`email` IS NULL ORDER BY `users`.`id` ASC LIMIT 1 

, когда я попытался с помощью примера ERB form_tag вместо simple_form процесс работал нормально. Вот две формы для сравнения:

Моя форма (в пересчете от Haml Еврорадио)

<%= simple_form_for :sessions, :url => log_in_path do |f| %> 
    <%= f.input :email %> 
    <%= f.input :password %> 

    <%= f.button :submit, 'Login' %> 

Из приведенной выше статье:

<%= form_tag log_in_path do %> 
    <%= label_tag :email %> 
    <%= text_field_tag :email %> 
    <%= label_tag :password %> 
    <%= password_field_tag :password %> 

    <%= submit_tag "Log in" %> 
<%end%> 

ответ

0

За этой статье: simple_form problems with login

было для обновления действия создания контроллера сеанса.

это:

@user = User.authenticate(params[:email], params[:password]) 

стал этим:

@user = User.authenticate(params[:sessions][:email], params[:sessions][:password]) 

работает как шарм сейчас!

Смежные вопросы