2013-05-17 7 views
0

내 모델 구조이다. "validates_uniqueness_of : name, : scope => [: chart_id]"을 사용해 보았습니다.하지만 특정 차트의 고유 키를 얻는 데 도움이되었지만 특정 클라이언트의 모든 차트가 아닙니다. 내가 "validates_uniqueness_of : 이름, : 범위 => [: client_id]" 같은 것을 찾고 있는데 분명히 현재의 구조와 그것을 밖으로 작동하지 않습니다.고유성 검증

누군가 나를 도와 줄 수 있습니까?

+0

를? –

+0

각 클라이언트마다 고유 한 chart_data를 원합니다. – Yahya

+0

그러나 그것의 직접적으로 associted ... –

답변

0

각 클라이언트에 대해 chart_data에 대한 name 독특한 필요하기 때문에이 같은 이름이 무엇인가에 대한 사용자 지정 유효성 검사 작성 시도 할 수 있습니다 : 당신은 특정 클라이언트에 속하는 모든 chart_data에 대한 동일한 키를 원하는

class ChartDatum < ActiveRecord::Base 
    belongs_to :chart 
    validates :name, :uniqueness => true, unless => :unique_for_client? 

    def unique_for_client? 
    client = self.chart.client 
    client.charts.chart_data.pluck(:name).include?(self.name) 
    end 
end