我的用戶體驗涉及用戶在驗證之前提交表單(使用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