before_validaton 콜백을 별도의 클래스로 구현하여 여러 모델 클래스에서 재사용 할 수있게하려고합니다.Rails 모델 콜백 : 필드를 매개 변수로 콜백 클래스에 전달 하시겠습니까?
여기 콜백에서 필자는 매개 변수로 전달 된 필드를 제거하고 싶지만 콜백 클래스에 매개 변수를 전달하는 방법을 모르겠습니다. 또한 나는이 개념을 가치가 아니라 참조로 전달하고자한다. (이 개념이 Ruby Rails에 있는지는 확실치 않다.) 차라리 별도의 콜백 클래스 코드에 정의하는 것이 아니라 그 자체로 모델 방법을 정의하면 내가 여기 http://guides.rubyonrails.org/active_record_validations_callbacks.html#callback-classes
이 완전히 정확하지 않은 코드 링크를 따라하고, (이처럼 같은
class StripFieldsCallback
def self.before_validation(field)
field = field.strip
end
end
class User < ActiveRecord::Base
validates_uniqueness_of :name, :case_sensitive => false
validates_length_of :name, :maximum => 50
before__validation StripFieldsCallback(name)
end
에 대해 도와주세요 괜찮습니다)
class User < ActiveRecord::Base
validates_uniqueness_of :name, :case_sensitive => false
validates_length_of :name, :maximum => 50
before__validation :strip_blanks
protected
def strip_blanks
self.name = self.name.strip
end
end
물론 모든 모델에서 메소드를 복제하는 것은 좋지 않으므로 콜백 클래스에서 메소드를 정의하고 싶습니다.