在新模型的帖子中,我正在通过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
答案 0 :(得分:0)
您无法重定向到帖子操作,只能获取操作。
答案 1 :(得分:0)
你可以存储post对象,以便在身份验证后进行后续处理,但你真的不想这样做。
为什么不简单地要求#new方法进行身份验证,而不是(或者除了)#create?这样,用户在填写表单之前就会通过身份验证。