使用omniauth寶石,我不得不定義一個路線回調成功的登錄,無論提供者:扶手:渲染並立即退出
def auth_callback
auth_data = request.env['omniauth.auth']
if auth_data.has_key('something')
process_one(auth_data)
else
process_two(auth_data)
end
# No view is available here
end
def process_one
# do something then render view for process_one
return
end
def process_two
# do something then render view for process_two
return
end
我怎樣才能防止控制器返回auth_callback方法並嘗試顯示相應的視圖(不存在)?一旦process_one或process_two方法返回,治療應被視爲完成。
你在你的方法'process_one'和'process_two'中有沒有返回代碼路徑嗎?如果是的話,你可以嘗試呈現:沒什麼=> true或別的東西有 – 2011-04-04 13:38:07
我可以使用「如果(x)的渲染:process_one其他渲染:process_two」在auth_callback,但它是相當不自然:我寧願依靠process_one和process_two表達自己的觀點。 – 2011-04-04 13:46:57
我的意思是如果你寫了一個簡單的'return'(或者像'return if(!something)'這樣的代碼)。軌道會嘗試呈現默認動作視圖 – 2011-04-04 13:53:51