1
我想在一個單獨的類中實現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
當然,在所有模型中複製方法並不好,所以我想在回調類中定義方法。