Нижеследующее работает, когда я определяю свой метод вручную, но когда я использую некоторое метапрограммирование для определения моего метода, код не работает. Что не так с моим кодом?
В моей модели
Работает
def amount=(value)
value = value.gsub(/[\,]/,'') if value.is_a?(String)
write_attribute(:aum, value)
end
Работает 2
[:amount].each do |field|
define_method("#{field.to_s}=".intern) do |value|
value = value.gsub(/[\,]/,'') if value.is_a?(String) # remove ,
write_attribute(field.intern, value)
end
end
Не работает
stripe_commas_from(:amount)
def self.stripe_commas_from(*fields)
fields.each do |field|
define_method "#{field.to_s}=".intern do |value|
value = value.gsub(/[\,]/,'') if value.is_a?(String) # remove ,
write_attribute(field.intern, value)
end
end
end