Для приложения, которое я пишу, я использую простой ручной аутентификацию (как описано на Railscast.com). Используя некоторый код из Gem Rifty Bates 'NiftyGenerators, у меня есть модель аутентификации, которая имеет некоторые полезные методы для аутентификации. Этот модуль включен в application_controller.rb
.Перенаправление на предыдущий URL после входа в систему - Rails
Один из методов, который я хочу использовать, называется redirect_to_target_or_default
. Я знаю, что мне нужно перенаправить пользователя на страницу, на которой они были, после того, как они прошли проверку подлинности, но я не знаю, где я должен назвать этот метод? Если бы кто-нибудь мог дать мне представление о том, как использовать этот метод, я был бы очень признателен.
ControllerAuthenticaion Модуль Код
module ControllerAuthentication
# Makes these methods helper methods in the controller that includes this module.
def self.included(controller)
controller.send :helper_method,
:current_admin, :logged_in?,
:redirect_to_target_or_default
end
def current_admin
@current_admin ||= Admin.find(session[:admin_id]) if session[:admin_id]
end
def logged_in?
current_admin
end
def login_required
unless logged_in?
store_target_location
redirect_to login_url,
:alert => "You must first log in before accessing this page."
end
end
def redirect_to_target_or_default(default, *args)
redirect_to(session[:return_to] || default, *args)
session[:return_to] = nil
end
def redirect_to_or_default(target, *args)
redirect_to(target || default, *args)
end
def store_target_location
session[:return_to] = request.url
end
end
Именно то, что я искал! Благодаря! – agentbanks217