Rails 中的基本用户身份验证
Basic User Authentication in Rails
我正致力于在 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%>
根据这篇文章:simple_form problems with login
必须更新会话控制器的创建操作。
这个:
@user = User.authenticate(params[:email], params[:password])
变成了这个:
@user = User.authenticate(params[:sessions][:email], params[:sessions][:password])
现在很有魅力!
我正致力于在 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%>
根据这篇文章:simple_form problems with login
必须更新会话控制器的创建操作。
这个:
@user = User.authenticate(params[:email], params[:password])
变成了这个:
@user = User.authenticate(params[:sessions][:email], params[:sessions][:password])
现在很有魅力!