2012-02-24 5 views
8

Załóżmy, że mam:Szyny unikalnych nazw w zakresie rodzica

class Author  
    has_many :books 

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

Chcę zmienić to tak, że nazwa tej książki jest wyjątkowa tylko w zakresie autora, czyli nie autor ma dwa książki o tej samej nazwie, ale dwóch autorów może mieć książkę o tej samej nazwie. czy to możliwe?

Odpowiedz

12

To bardzo możliwe i całkiem proste:

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

składnia To nie jest w porządku (przynajmniej dla Rails 3.2), powinno być: 'wyjątkowość {zakres:: author}' – schiza

+0

Dzięki schiza , Zaktualizowałem swoją odpowiedź, aby to odzwierciedlić. – Veraticus

4
validates :name, :presence => true, :uniqueness => {:scope => :author_id} 
Powiązane problemy