Rails has_one ID问题

时间:2014-03-03 13:10:55

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

我希望有一个 has_one 关系,但在模型上具有has_one属性的引用ID列。

我的项目中有一个Guest模型,该模型与User具有一对一的关系。请不要告诉我使用角色,Guest类具有我需要的更多功能。

所以我需要的是:

class Guest < ActiveRecord::Base
  has_one :user, :dependent => :delete

我想在user_id模型中使用Guest - guest_id模型中User没有任何意义,因为其他用户不是来宾。

2 个答案:

答案 0 :(得分:2)

我认为thaha的答案看起来很棒。如果您想避免向User添加列,可以撤消他提到的关联:

class User < ActiveRecord::Base
     has_one :guest, :dependent => :destroy


class Guest < ActiveRecord::Base
     belongs_to :user

另见2.1节:http://guides.rubyonrails.org/association_basics.html

答案 1 :(得分:1)

我们可以通过两种方式实现一对一关联,试试这个

class User < ActiveRecord::Base
  belongs_to :guest, :dependent => :destroy


class Guest < ActiveRecord::Base
  has_one :user