У меня есть следующий код под projects_controller.rb
пользователя Аутентифицировать в контроллере, а затем перенаправить
class Admin::ProjectsController < ApplicationController
before_filter :require_login
def require_login
while (adminLogin != 'username')
redirect_to admin_login_path and return
end
end
И это в application_controller.rb
class ApplicationController < ActionController::Base
# Return the admin user
def adminLogin
@email = params[:email]
@password = params[:password]
return @email
end
end
Я пытаюсь получить электронную почту в этой форме и передать его на диспетчера проектов, поэтому, когда адрес электронной почты определен, администратор может войти в систему. Когда я нажимаю кнопку отправки в форме, я вижу, что правильное электронное письмо отправляется в контроллер проектов, используя <%= debug @email %>
в форме, но страница перенаправляется на снова войдите в систему. Как я могу перейти в/проекты?
[UPDATE]:
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
# Return the admin user
def redirect_unless_admin
@email = params[:email]
password = params[:password]
if (@email == 'username')
redirect_to admin_projects_path
else
redirect_to admin_login_path
end
конец конец
и я требую этого метода в моем projects_controller.rb
. Это просто ломает его, перенаправляет слишком много раз
Используя ваш точный код, я получаю «веб-сайт, перенаправленный слишком много раз», поэтому я не совсем уверен, что это правильно. Если я изменил свой метод на это '@email = 'username' redirect_to (@email == 'username'? Admin_projects_path: admin_login_path)' Он получает правильный адрес электронной почты и маршрутизацию в '/ admin/projects', но затем он сбой с снова слишком много раз исправляет ошибку –
Прохладный, сделайте снимок сейчас. Возможно, он попытался слишком задуматься. Когда все остальное терпит неудачу, просто пойдите с добрым старым if/else :) –
Пожалуйста, см. Мой комментарий выше с обновленным кодом ^^^ –