具有STI的Devise,Omniauth和多个模型

时间:2013-03-19 10:15:55

标签: devise ruby-on-rails-3.2 omniauth

我有一个使用sti进行设计认证的应用程序设置(基本用户模型和另外两个模型 - 公司和个人 - 继承它)。从设计的角度来看,一切都在发挥作用。我可以为注册表单设置不同的路由,一切都按预期工作。现在我想给两个用户(公司和个人)提供使用facebook或链接注册/登录的选项。如果我在两个模型上设置:omniauthable,并在我的routes.rb上为每个模型设置devise_for,我得到错误说只有一个模型可以是omniauthable。如果我没有为每个模型使用devise_for,则不会生成任何路由。如果我只在用户模型上设置omniauthable,我只得到一个路由和一个回调。

我已经读过某个地方,解决方案是自己使用omniauth(与设计分开)。但是,我似乎无法使用与设计分开的omniauth实现预期的行为(我可以获得一个单一的授权/回调路由,但这两个,如预期的那样)。

有谁可以提供帮助?

TIA

1 个答案:

答案 0 :(得分:0)

Devise的Omniauthable模块支持多种型号。参见

https://github.com/plataformatec/devise/wiki/OmniAuth-with-multiple-models