определенный вручную метод работает, но define_method - нет, ошибка не отображается - PullRequest
0 голосов
/ 21 января 2020

Нижеследующее работает, когда я определяю свой метод вручную, но когда я использую некоторое метапрограммирование для определения моего метода, код не работает. Что не так с моим кодом?

В моей модели

Работает

  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
...