Ruby on RailsのMVCモデルのコントローラのメソッドでわからないところがありました。
まず、newフォームを以下のように作成しました。
<div class="text-center"> <h1>Log in</h1> </div> <div class="row"> <div class="col-sm-6 offset-sm-3"> <%= form_with(url: login_path, scope: :session, local: true) do |f| %> <div class="form-group"> <%= f.label :email, 'Email' %> <%= f.email_field :email, class: 'form-control' %> </div> <div class="form-group"> <%= f.label :password, 'Password' %> <%= f.password_field :password, class: 'form-control' %> </div> <%= f.submit 'Log in', class: 'btn btn-primary btn-block' %> <% end %> <p>New user? <%= link_to 'Sign up now!', signup_path %></p> </div> </div>
続いて、コントローラを以下のように定義しました。
class SessionsController < ApplicationController def new end def create email = params[:session][:email].downcase password = params[:session][:password] if login(email, password) flash[:success] = 'ログインに成功しました。' redirect_to @user else flash.now[:danger] = 'ログインに失敗しました。' render :new end end def destroy end private def login(email, password) @user = User.find_by(email: email) if @user && @user.authenticate(password) session[:user_id] = @user.id return true else return false end end end
この「def login(email,password)」のemailとpasswordはどこから受け取っているんですか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。