我正在制作一个包含服务和提供商的服务比较网站。所有提供商将为他们提供的每种不同服务提供独特的成本。我希望能够让我的网站查看者看到每个提供商为特定服务收取的费用的比较。
我应该如何设置此关联?服务属于提供商或提供商属于服务吗?
在应用程序中,您将选择一项服务,然后查看每个提供商为该服务收取的费用。我还希望能够选择一个提供商,并在可能的情况下查看他们的服务列表。
答案 0 :(得分:1)
服务属于提供商或提供商属于服务吗?
都不是。产品和服务是一种多对多的关系,因此您需要在产品和服务之间加入记录,这也是您需要为给定提供商实施该服务存储价格的地方。这是has_many :through
的极其典型的用法。
您可能会考虑一个名为" ProvideService":
的加入记录class Provider
has_many :provided_services
has_many :services, through: :provided_services
class ProvidedService
belongs_to :provider
belongs_to :service
validates :price, presence: true
class Service
has_many :provided_services
has_many :services, through: :provided-services
举例来说,"贝尔"和#34;罗杰斯"将是提供商(这些是加拿大电话公司)和"长途"将是一项服务。
贝尔和长途之间的加入ProvidedService
的价格可能是24.99。罗杰斯和长途之间的联合可能会有23.99的价格。
答案 1 :(得分:1)
这不是Errors and warnings
关系,因此我们无法使用4
和1-n
。
这是'n-n'关系,因此您可以使用has_one
或belongs_to
答案 2 :(得分:0)
您可能需要has-and-belongs-to-many关系。你提到的最后一个案例:
在应用程序中,您将选择一项服务,然后查看每个提供商为该服务收取的费用。我还希望能够选择一个提供商,并在可能的情况下查看他们的服务列表。
你可以通过拥有和属于多人的关系来轻松地做到这一点。