Rails неопределенные ошибки метода, показываемые на контроллере сеанса
Я создаю приложение, в котором я пытаюсь войти в систему, используя разрешение. У меня есть страница входа в систему и регистрации. Они работают очень гладко, но проблема в том, что я пытаюсь показать ошибку, когда пользователь вводит неправильный адрес электронной почты или пароль, поэтому мой <% if: session.errors.any? %> не работает. Это говорит о неопределенном методе `errors'для: session: Symbol
[Session_controller]
class SessionController < ApplicationController
def new
end
def create
@session = authenticate(params)
sign_in(@session) do |status|
if status.success?
redirect_to root_path
else
render 'new'
end
end
end
private
def user_params
params.require(:session).permit(:email,:password)
end
end
[Сессии /_form.html.erb]
2 ответа
Вы вызываете ошибки на :session
, который является символом. Вы можете попробовать вызвать ошибки на @session
,
неопределенный метод `errors'для:session:Symbol
errors
должен вызываться на новом экземпляре модели, т.е. Model.new
, У тебя должно быть @session
определяется как Session.new
в new
метод, ниже должен работать
#session_controller
def new
@session = Session.new
end
#in the view
<% if @session.errors.any? %>