【问题标题】:what would happen if you use belongs_to without having a corresponding has_one?如果您在没有相应的 has_one 的情况下使用 belongs_to 会发生什么?
【发布时间】:2009-03-30 20:58:25
【问题描述】:

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

比方说,我想拥有映射guid->idItemFeedInfo(这样我就可以区分新项目和修改项目)

我正在考虑创建

class ItemFeedInfo
  belongs_to :Item
end

我不想修改Item,因为它的定义在逻辑上独立于ItemFeedInfo 但是,我能找到的每个使用belongs_to 的示例都提到了has_one 对应项。需要吗?

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    没关系。

    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 类中,但如果您实际上不需要这样做,那也没关系。

    【讨论】:

    • 非常感谢。我无法在其他任何地方找到此信息(也许我应该更努力地寻找..)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多