【问题标题】:What is the Rails Way to manage a series of has_many relationships off the same model管理一系列has_many关系的Rails方式是什么?
【发布时间】:2010-10-07 22:00:06
【问题描述】:

我正在使用 Rails 3。

主要型号为Product

:product has_many :images
:product has_many :related_products (self-referential)
:product has_many :descriptions
:product has_many :specifications
:product has_many :upc_codes
:product has_many :prices

你明白了。我正在尝试确定是否可以将其硬塞到属性模型中,其中属性是价格、规格、描述等。但我遇到的问题是,虽然其中一些子模型只有一个属性,但其他的有很多。例如,一个图像可能只有一个路径属性,但一个描述可以有一个文本值和语言代码,一个价格可以有价格和货币组件。

Properties 模型提供了很大的灵活性,但如果我处理包含多个属性的子属性,它就会崩溃。

是我需要这两个的真正答案吗?始终与产品一对一的属性的属性方式,以及具有多个属性的子模型的每个单独模型(价格、描述等)?

【问题讨论】:

    标签: ruby-on-rails design-patterns ruby-on-rails-3


    【解决方案1】:

    如果属性具有一组非常相似的方法、用例和行为,则将它们合并到单个属性模型中是有意义的。

    如果它们各自以不同的方式工作,需要不同的方法和行为,那么您当前描述的内容将是正确的。

    如果情况介于两者之间,您可以使用Single Table Inheritance 以避免代码重复,并保持设计简单。

    【讨论】:

    • 这是关键,丹。我关注的是属性本身而不是行为。行为决定某物是否为实体,感谢您的回答。
    猜你喜欢
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多