Этот фрагмент отлично работает:
<%= form_tag(session_path) do |f| %>
<p>
<%= label_tag :email %>
<%= email_field_tag :email, nil %>
</p>
<p>
<%= label_tag :password %>
<%= password_field_tag :password, nil %>
</p>
<%= submit_tag "Sign in", class: 'btn-primary' %>
<% end %>
Но когда я попытался изменить его на simple_form_for
, как показано на скриншоте, он выдает ошибку Неверный адрес электронной почты или пароль!
# sessions_controller.rb
class SessionsController < ApplicationController
def new
end
def create
if user = User.authenticate(params[:email],params[:password])
session[:user_id] = user.id
flash[:notice] = "Signed in successfully."
redirect_to user
else
flash.now[:alert] = 'Invalid email or password!'
render :new
end
end
end
Я чувствую, что что-то не так в линии
<%= simple_form_for :session, url: session_path do |f| %>
В routes.rb
: resource :session
-Да, это единственное число, а не множественное число