Rails模型在不同的上下文中建模关系

时间:2013-05-24 14:10:00

标签: ruby-on-rails-3 orm model

我有作者和主持人的记录。所以我有两个模型Record和User:

class Record < ActiveRecord::Base
  attr_accessible :content, :author_id, :moderator_id
end

class User < ActiveRecord::Base
  attr_accessible :name, :uid

  validates :uid, :presence => true
  validates :name, :presence => true

  has_many :documents
end

有人能建议一个很好的解决方案来建立这些模型之间的关系,这样一条记录只能有一个作者而只有一个主持人吗?

1 个答案:

答案 0 :(得分:1)

这可以通过在User模型中引用模型Record来完成。

记录创建表应包含两行,如下所示:

  t.references :author
  t.references :moderator

记录模型应该看起来像

class Record < ActiveRecord::Base
  attr_accessible :content, :author_id, :moderator_id

  validates :author_id, moderator_id, :uniqueness => true  # To have unique author and moderator for each record

  belongs_to :author, class_name => 'User'
  belongs_to :moderator, class_name => 'User'
end