рельсы указывают метод для redirect_to - PullRequest
2 голосов
/ 30 июля 2009

Во время публикации новой модели я проверяю аутентификацию через Authlogic. В запросе на создание есть before_filter. Он звонит require_user. После успешного создания пользовательского сеанса вызывается метод redirect_back_or_default(default). Проблема в том, что запрос должен быть отправлен в сохраненный URI. Я попытался сохранить метод и ввести его в 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

Ответы [ 2 ]

0 голосов
/ 30 июля 2009

Вы можете сохранить объект post для последующей обработки после аутентификации, но вы действительно не хотите этого делать.

Почему бы просто не запросить аутентификацию в методе #new, а не (или в дополнение к) #create? Таким образом, пользователь проходит проверку подлинности перед заполнением формы.

0 голосов
/ 30 июля 2009

Вы не можете перенаправить на сообщение, только получить действия.

...