我正在尝试创建一个非常基本的登录表单。它没有密码或用户名;只是用户名的文本字段和提交按钮
这是它的代码:
<%= form_for :current_user, url: { :controller => 'sessions', :action=>'new' } do |f| %>
<p id='name'>Name:<%= f.text_field :current_user, placeholder: 'First Last', :id => 'current_user' %></p>
<%= f.submit 'Submit', :class => 'btn btn-primary' %>
当我提交名称 rails 给我这个错误
ActiveRecord::RecordNotFound in SessionsController#new
Couldn't find User without an ID
但它接收到正确的参数,因为它包含
"current_user"=>{"name"=>"John Doe"}
这是我希望它接收的内容,但我遇到的问题是正确定义将 current_user 实际设置为 John Doe 的操作。
所以这就是我在控制器中的内容
class SessionsController < ApplicationController
def new
@current_user = User.find(params[:name])
redirect_to '/calendar'
end
end
我要做的就是将变量@current_user 设置为数据库中名为John Doe 的用户。因此,我需要采取的行动是将提交的姓名 John Doe 与数据库中的 John Doe 进行匹配。但我不知道该怎么做,所以任何建议都会很棒。谢谢