我的用户体验涉及用户在验证之前提交表单(使用omniauth)。我开始做这样的事情:在验证用户身份之后,是否有“导轨方式”重试POST?
def self.require_facebook_authentication!(options={})
before_filter :redirect_to_facebook_if_not_authenticated options
end
def redirect_to_facebook_if_not_authenticated
if !logged_in?
session[:param_cache] = params
session[:original_destination] = request.fullpath
redirect_to '/auth/facebook'
end
end
然后,在碰到AUTH回调,重定向到提交形式与post数据内嵌,共3个重定向(/stuff/new/ on POST -> auth/facebook -> facebook -> /auth/facebook/callback [ html template with POST form ] -> /stuff/create
)的页面。我宁愿不创建身份验证弹出窗口;相反,我想导航到一个单独的页面,登录并重定向到已完成的操作。
我对Rails相当陌生,所以我仍然在学习 - 这是否已经内置于另一个框架?我错过了一些非常基本的东西?提前致谢!
不会尝试去两次original_destination吗? (一旦POST数据,然后再次没有?) – 2011-03-18 04:28:29
@Anthony Bishopric:是的。您希望捕获并更改window.location调用,以便在成功发布后将用户发送到的位置。 – Unixmonkey 2011-03-18 13:23:26