패스

2014-07-10 2 views
0

액티브의 validates_each 방법 before_validation 액티브 속성을 여러 속성을 지원?패스

before_validation [:foo, :bar, :baz] :do_something 

... 

protected 

    def do_something(*args) 

    args.each do |a| 

     # logic here 

    end 

    end 

... 

** 편집 **

:foo, :bar, :baz이 URL이 있습니다. 나는 검증을 적용하기 전에 '정상화'(누락 된 경우 시작 부분에 'http : //'를 추가)하고 싶습니다.

+1

액세스 할 수있는 args는 무엇입니까? 'self.name'는 새 이름이나 이전 이름을 반환해야합니다. 'self.changes [: name] .try (: first)'는 변경된 경우 새 이름을 반환해야하고, 변경되면'self.changes [: name] .try (: last)'는 이전 이름을 반환합니다. – MrYoshiji

답변

0

여러 인수를 허용한다고 생각하지 않지만 동일한 방법을 호출하는 여러 개의 유효성 검사를 가질 수 있습니다. 꽤 명확하게

before_validation :foo, :do_something 
before_validation :bar, :do_something 
before_validation :baz, :do_something 
+0

': do_something'에서 참조되는 첫 번째 인수 (예 :': foo')입니까? – craig

0
before_validation :do_something 

protected 
    def do_something 
    #do something here 
    end 
end 

This documentation 주문 그것을 밖으로.

+0

나는 그것을 읽었다. 그러나 나는 누군가가 멋진 트릭을 가질 수 있기를 바랬다. – craig

+0

멋진 마술은 필요 없습니다.이 구문을 사용하여 정상적으로 정상화 할 수 있습니다. 각각을 독립적으로 정규화해야합니다. 그래서 self.foo =? –