가 나는 모델 나는이의 이름 속성이 하나의 범위에 대한 고유해야합니다레일 모델 : 관련 엔티티의 속성에 대한 유효 범위가있는 validates_uniqueness_of를 사용합니까?
class One <Active:Record:Base
{
has_and_belongs_to_many :twos, {:join_table => 'map__ones__twos'}
}
class Two <Active:Record:Base
{
has_and_belongs_to_many :ones, {:join_table => 'map__ones__twos'}
}
다음과 같이 정의했습니다. 즉, 하나에 속한 두 개의 이름 모두 고유 한 이름을 가져야합니다. 여기서는 두 모델에서 아래와 같은 것을 지정할 수 없습니다.
validates_uniqueness_of :name, :scope => one_id
왜냐하면 on_id는 2 테이블의 열이 아니기 때문입니다. 오히려 one_id 및 two_id이 테이블을 통해 서로에 매핑되는이
내가 자주 has_and_belongs_to_many를 사용하는 것이보다 가치가 더 문제가 있음을 발견했다
1, 2가되지 않습니다
그리고 당신의 두 모델을 다음과 같습니다 좋은 이름. 귀하의 모범을 더 붉어지는 것으로 바꾸십시오. – tjeden