在rails问题中构建类似数据模型的wiki

时间:2010-04-22 05:11:10

标签: ruby-on-rails database-design activerecord

我有一个数据模型,我希望有一个项目具有可以编辑的描述。我还想跟踪项目的所有编辑。我遇到了当前战略的问题,即:

class Item < ActiveRecord::Base
  has_one  :current_edit,
           :class_name => "Edit",
           :foreign_key => "current_edit_id"
  has_many :edits
end

class Edit < ActiveRecord::Base
  belongs_to :item
end

Item可以像这样与同一个类有多个关联吗?

我原本以为我应该转而在Edit对象中跟踪编辑版本,然后只根据此版本对has_many关系进行排序。

1 个答案:

答案 0 :(得分:1)

是的,它可以。但您必须使用belongs_to而不是has_one。然后你的模型必须看起来像:

(Item, current_edit_id, ...)
(Edit, item_id, ....)

rails doc更详细地解释了这一点:Is it a belongs_to or has_one association?