Ruby Rails记录关联(has_many:through)

时间:2016-04-06 16:48:34

标签: ruby-on-rails model-associations

您好我正在使用ruby rails创建3个型号 但我有一些问题。 这是我的模型代码

class Company < ActiveRecord::Base
    has_many :pendings
    has_many :products, :through => :pendings
end

class Product < ActiveRecord::Base
  has_many :pendings
  has_many :companies, :through => :pendings
end

class Pending < ActiveRecord::Base
  belongs_to :company
  belongs_to :product
end

我想让公司可以通过Pending来生产许多产品,反之亦然,它运作良好,但有没有办法在公司和产品之间只设置一个待定模型。

Here's my currently model

I want to make it like this

1 个答案:

答案 0 :(得分:1)

一个选项:您可以按原样保留关联,但将以下验证添加到pending.rb

validates :company_id, uniqueness: {scope: :product_id}

在此处查看更多内容:rails validation docs

这将确保您每个公司和产品只能有一个待处理的......但是对于其他产品而言,这些公司会有许多挂件。