rails指定redirect_to的方法

时间:2009-07-30 03:24:48

标签: ruby-on-rails ruby authentication routing authlogic

在新模型的帖子中,我正在通过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 :(得分:0)

您无法重定向到帖子操作,只能获取操作。

答案 1 :(得分:0)

可以存储post对象,以便在身份验证后进行后续处理,但你真的不想这样做。

为什么不简单地要求#new方法进行身份验证,而不是(或者除了)#create?这样,用户在填写表单之前就会通过身份验证。