Witam
Czy ktoś wie w jaki sposób w module mogę odczytać parametry walidacji modelu do którego dany moduł jest includowany ?
Narazie udało mi się tylko sprawdzić czy walidacja istnieje
module InstanceMethods
def self.included(base)
if base.respond_to?(:validates_uniqueness_of) ...
Validacje na modelu możesz sprawdzać za pomocą metody klasowej _validators:
MyModel._validators
choć może jest jakaś lepsza metoda.
[quote=Artur79]module InstanceMethods
def self.included(base)
if base.respond_to?(:validates_uniqueness_of) ...
[/quote]
W ten sposób sprawdzasz tylko czy klasa w której jest moduł inkludowany odpowiada na metodę validates_uniqueness_of, a klasa dziedzicząca z ActiveRecord::Base, zawsze zwróci true.
Np:
module InstanceMethods
def self.included(base)
self._validators.keys
Zwróci Ci wszystkie validowane pola.
Ps. poczytaj o ActiveSupportConcern tu: http://api.rubyonrails.org/classes/ActiveSupport.html