2016-04-06 26 views
1

Merhaba Ben yakut raylar ile 3 model oluşturuyorum Ama bir sorunum var. Burada, bu iyi çalıştı benim modeli kodRuby Rails Kayıt Dernekleri (has_many: through)

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 

Ben şirket Bekleyen tersi aracılığıyla birçok Ürünleri olabilir yapmak istedik, ama şirket ve ürün arasında sadece 1 Bekleyen modeli ayarlamak için herhangi bir yolu yoktur.

Here's my currently model

I want to make it like this

+0

Neyle kastediliyorsunuz? ** şirket ile ürün arasında sadece 1 tane beklemede model belirleme yolu var mı? Örneğin, – dp7

+0

, şirketin iki beklemede aynı ürüne aittir. ama sadece beklemede olan bir modelin şirkete ve ürüne ait olmasını istiyorum ... bunu açıklamak zor. –

+0

Ürün/şirket başına yalnızca bir beklemede kalmak istiyorsanız, 'has_one' ilişkilendirmesini kullanmalısınız. – dp7

cevap

1

Seçeneklerden biri: Eğer olduğu gibi dernek bırakın, fakat

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

burada fazla görmek pending.rb için aşağıdaki doğrulama ekleyebilirsiniz: rails validation docs

Bu, her bir şirket ve ürün için yalnızca bir beklemeniz olmasını sağlar. Diğer ürünlerle ilgili şirketler.

+1

Teşekkür ederim ... Çok yardımcı oldu .. –