Rails中的基本用户身份验证

时间:2015-02-13 17:35:20

标签: ruby-on-rails authentication simple-form

我正在按照本文

在Rails 4中实现一些基本的用户身份验证

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

当我使用form_tag而不是simple_form尝试使用ERB示例时,该过程运行正常。以下是两种比较形式:

我的表格(从HAML转换为ERB)

<%= 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%>

1 个答案:

答案 0 :(得分:0)

根据这篇文章:simple_form problems with login

必须更新会话控制器的创建操作。

这样:

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

成了这个:

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

现在就像魅力一样!