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? %>
Другие вопросы по тегам