使用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