Во время публикации новой модели я проверяю аутентификацию через Authlogic. В запросе создания есть before_filter
. Он звонит require_user
. После успешного создания пользовательского сеанса вызывается метод redirect_back_or_default(default)
. Проблема заключается в том, что запрос должен быть отправлен на сохраненный uri. Я попытался сохранить метод и ввести его в redirect_to
, но он не работает. Есть идеи?rails указать метод для redirect_to
# called before successful authentication with before_filter
def require_user
unless current_user
store_location
flash[:notice] = "You must be logged in to access this page"
redirect_to new_user_session_url
return false
end
end
def store_location
session[:return_to] = request.request_uri
session[:return_to_method] = request.request_method
end
# called after successful authentication
def redirect_back_or_default(default)
redirect_to((session[:return_to] ? session[:return_to] : default), :method => session[:return_to_method])
session[:return_to] = nil
session[:return_to_method] = nil
end
Спасибо за ответы. То, что я закончил, - это добавление статуса авторизованной модели. Я разрешаю создавать от неавторизованных пользователей, которые не вошли в систему, а начальное состояние недействительно. Затем в действии create, если они не вошли в него, будет сохранен путь к действию show и перенаправлен на страницу входа/новой пользовательской страницы. Если они не войдут в систему, модель никогда не будет проверена и будет получена в результате рейк-задачи позднее. Если они войдут в систему, они будут перенаправлены обратно на действие show, которое будет «авторизовать» модель, если она была создана ими, и они являются logged_in. –