如果您使用belongs_to而没有相应的has_one会发生什么?

时间:2009-03-30 20:58:25

标签: ruby-on-rails activerecord

我有一个Item的核心模型,以及一个从自定义源(想想,RSS提要)填充它的脚本。在Feed中,每个项目都标有guid;在我的系统中,Item只有一个自动生成的id主键。

我希望ItemFeedInfo映射guid->id(以便我可以区分新项目和修改项目)

我正在考虑创建

class ItemFeedInfo
  belongs_to :Item
end

我不想修改Item,因为它的定义在逻辑上与ItemFeedInfo无关。但是,我发现使用belongs_to的每个示例都提到了has_one对应物。是否需要?

1 个答案:

答案 0 :(得分:17)

没关系。

belongs_to只是向ItemFeedInfo类添加了一些方法。您知道何时执行item_feed_info.items.find_all ... items只是在您调用belongs_to时动态添加的方法。

如果您不修改Item类,那么您根本就不会在另一侧添加方法。您将无法执行item.item_feed_infos.find_all,因为如果不添加has_many :item_feed_infos,该方法将不会添加到Item类,但如果您实际上从未需要这样做,没关系。