paper_trail отлично подходит для нас. Но когда мы войти в консоль Heroku с heroku run console
и тогда мы делаем изменения, инициатор изменения не установлен :(Так paper_trail имеет механизм для этого:.Автоматическая настройка того, кто несет ответственность за изменение консоли в paper_trail в Heroku
In a console session you can manually set who is responsible like this:
>> PaperTrail.whodunnit = 'Andy Stewart'
>> widget.update_attributes :name => 'Wibble'
>> widget.versions.last.whodunnit # Andy Stewart
You can avoid having to do this manually by setting your initializer to pick up the username of the current user from the OS, like this:
<bunch of code>
Мой вопрос заключается в том, как мы можем автоматизировать этот процесс с Heroku? есть ли может быть что-то вроде этого я могу сделать?
heroku run console -e "PaperTrail.whodunnit = '123:console'"
Тогда каждый из нас мог бы просто создать console.sh
файл выше, используя наши индивидуальные идентификаторы пользователей. Или есть другой механизм, чтобы автоматизировать этот процесс?
Вы можете проверить, не является ли код запускается в консоли (http://stackoverflow.com/questions/13506690/how-to-determine-if-rails-is-running-from-cli-console-or-as-server); если да, то загрузите конкретный файл '.rb' (например, в config/whodunnit.rb), который будет запрашивать имя пользователя перед загрузкой остальных (благодаря классу STDIN) – MrYoshiji