【发布时间】:2013-12-02 15:25:44
【问题描述】:
我有两个模型,文章和文档。每个都需要一个编辑器,即包含文章或文档的内容主体。多态关联是有意义的。
文章
class Article < ActiveRecord::Base
has_one :editor, :as => :editable
end
文档
class Document < ActiveRecord::Base
has_one :editor, :as => :editable
end
编辑器
class Editor < ActiveRecord::Base
belongs_to :editable, :polymorphic => true
end
Editor 模型包含以下属性:
content、editable_id、editable_type(模型名称,即文章或文档)
这一切都很好,但我需要它吗?
如果我希望访问给定文章的内容正文,我不能像这样直接获取编辑器字段的 id 吗?
@article = Article.find(params[:id])
@editor_id = @article.editor.id
然后执行我的编辑器查找。
在这种情况下,我看不到一对一多态关系的好处。谁能直截了当?
【问题讨论】:
-
editable_id 不是唯一的......我希望你能在 SO 上提出愚蠢的问题!
标签: ruby-on-rails-3 associations