【问题标题】:Can a has_many :through association have other associations?has_many :through 关联可以有其他关联吗?
【发布时间】:2020-09-15 18:25:16
【问题描述】:

has_many, through: association 加入模型是否有可能具有关联? 假设有这个关联,我有一个产品列表,其中有很多不同的价格,每个价格都与一个国家/地区相关联。因此,我可以获取我的产品在哪些国家/地区可用,也可以在一个国家/地区获取每种产品。

产品

has_many :prices
has_many :countries, through :prices

价格

belongs_to :product
belongs_to :country

国家

has_many :prices
has_many :products, through :prices

现在我想在我的价格模型中添加其他关联,其中价格 has_one :currency,价格由该信息所属的用户定义。是否可以像这样添加关联?

价格

belongs_to :product
belongs_to :country

has_one :currency
belongs_to :user

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我不知道一个简单的“是”是否会帮助您解决您的问题,但是(因为您基本上已经提供了正确的代码):是的。

    您的prices 连接模型是默认的 Rails 模型,因此您可以像对待其他模型一样对待它(并实现关联、回调、自定义查找器等)。您只需确保数据库表中的外键正确排列(例如prices 需要一个user_id 列)。

    不是问题的一部分,而是一个小评论:

    我不确定您是否希望您的价格为has_one 货币。这意味着外键在currencies 表(price_id)中,这反过来意味着货币belongs_to 价格(也许您更希望您的货币为has_many 价格,而您的价格也是belongs_to a货币)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多