Как "[атрибут] _changed?"работать с CarrierWave mount_uploader: [атрибут]? - PullRequest
0 голосов
/ 14 октября 2019

В моей модели есть загрузчик CarrierWave.

before_validation :parse_template_file, if: :template_file_changed?
mount_uploader :template_file

Мой код выше не работает, выбрасывая NoMethodError template_file_changed?.

Как проверить, что файл был изменен перед сохранениемзапись

1 Ответ

0 голосов
/ 15 октября 2019

some_attr_changed? - это метод экземпляра, поэтому вам нужно вызвать его для экземпляра вашей модели.

Итак, вместо этого ...

before_validation :parse_template_file, if: :template_file_changed?

Попробуйте что-то вроде этого ...

before_validation :parse_template_file, if: :file_changed?

private

def file_changed?
  self.template_file_changed?  # self can be implied
end
...