使用omniauth和devise定义Identity和User之间的模型关系

时间:2013-08-19 09:23:28

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

我想创建一个rails 4启动,使用devise和omniauth,以及twitter bootstrap,并且可以。

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

身份模型

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:uninitialized constant User :: Identity基本上未初始化的常量User :: Identity

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

foreign_key参数应该在用户模型中。

在用户模型中尝试此操作:

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

这在您的身份模型中:

belongs_to :user