2012-02-24 6 views
8

생각에는 내가 가진 : 책의 이름, 저자의 범위 내에서만 고유 있도록부모의 범위에 고유 한 이름을 레일

class Author  
    has_many :books 

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

내가이를 변경하려면 즉, 어떤 저자는 두 가지가 없습니다 같은 이름의 책이지만 두 명의 작가는 같은 이름의 책을 가질 수 있습니다. 이것이 가능한가?

답변

12

그것은 매우 가능하고 아주 쉽게 :

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

이 구문은 (적어도 레일 3.2) 옳지 않다,해야한다 :'고유성 : {범위 : 저자}' – schiza

+0

감사 schiza , 나는 이것을 반영하기 위해 나의 대답을 업데이트했다. – Veraticus

4
validates :name, :presence => true, :uniqueness => {:scope => :author_id} 
관련 문제