2013-08-19 30 views
0

我想创建一个rails 4启动,使用devise和omniauth,以及twitter引导,并且可以。使用omniauth和设计定义标识和用户之间的模型关系

但是我对模型的理解并不好,因此我遇到了用户和身份模型的问题。

身份型号

class Identity < ActiveRecord::Base 

    belongs_to :user, :foreign_key => "uid" 

...

用户模型

class User < ActiveRecord::Base 

    include User::AuthDefinitions 
    include User::Roles 

    has_many :identities 

    validates_presence_of :email, :first_name, :last_name 

小GitHub的仓库就在这里 - :https://github.com/pratik60/tur

我确定这个问题是因为我对模型关系缺乏理解,但是当我尝试注册时出现此错误 - :NameError:未初始化的常量User :: Identity基本上未初始化的常量User :: Identity

有什么建议吗?

+0

您可以通过'User.first.identities'不'用户::身份得到认同'..感谢 –

+0

错误在这里 - :identities.empty?为什么会出现错误? –

+0

是的,因为用户没有任何身份,所以首先创建一些身份User.first.identities.create!(身份参数) –

回答

1

foreign_key参数应该位于用户模型中。在您的身份模型

has_many :identities, class_name: "Identity", foreign_key: "uid" 

这:

在您的用户模式试试这个

belongs_to :user 
+0

我认为它的工作原理:-) –

相关问题