非常に初歩的なサインインフォームを作成しようとしています。パスワードやユーザー名はありません。ユーザー名のテキストフィールドと送信ボタンのみ
コードは次のとおりです。
<%= 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' %>
レールの名前を送信すると、このエラーが表示されます
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 と照合することです。しかし、これを行う方法がわからないので、アドバイスは素晴らしいです。ありがとう