#paper-trail-gem
Вопрос:
У меня есть ситуация, когда в сценарии :создание мне нужно использовать :если проверка одного поля, но когда в сценарии :обновление или :касание мне нужно использовать :если для другого поля (игнорируя поле, проверенное при :создании).
Итак, я пытаюсь это сделать.
class MyModel lt; ActiveRecord::Base has_paper_trail if: Proc.new { |mymodel| mymodel.whodunnit.present? }, on: [:create] has_paper_trail if: Proc.new { |mymodel| mymodel.status.present? }, on: [:update, :touch] before_create { PaperTrail.request.whodunnit = whodunnit if whodunnit.present? } attr_accessor :whodunnit end
Но это не работает, как правильно это сделать?
Спасибо.
Комментарии:
1. Re: «это не работает» не могли бы вы уточнить, пожалуйста? Вы получаете сообщение об ошибке? Если это так, пожалуйста, включите соответствующие части трассировки стека. Я предполагаю, что вы получаете
NoMethodError
mymodel.whodunnit
оценку, но трудно помочь, основываясь на догадках.