2012-02-24 24 views
8

varsayalım Ben: kitabın adı, yazarı kapsamında yalnızca benzersiz olacak şekildeebeveyn kapsamında Benzersiz isimleri Raylar

class Author  
    has_many :books 

class Book 
    belongs_to :author 
    validates :name, :presence => true, :uniqueness => true 

Bunu değiştirmek istiyorum yani hiçbir yazar ikisini vardır Aynı adı taşıyan kitaplar, ancak iki yazarın aynı isimli bir kitabı olabilir. Mümkün mü?

cevap

12

Çok mümkün ve oldukça kolay:

validates :name, :presence => true, :uniqueness => {scope: :author} 
+0

Bu sözdizimi (en azından Raylar 3.2 için) doğru değil, olması gerekir: 'benzersizliği: {kapsamı:: yazar}' – schiza

+0

Teşekkür schiza , Bunu yanıtlamak için cevabımı güncelledim. – Veraticus

4
validates :name, :presence => true, :uniqueness => {:scope => :author_id}