2015-03-24 2 views
0

Я использую Devise и Papertrail и хотел бы показать, какой пользователь сделал последнее обновление (documentation link).Rails Papertrail - показывать, кто был ответственным за последние изменения

В контроллере:

def show 
    # @history = @person.versions.last 
    @last_change = @person.versions.last 
    @user_who_made_the_change = User.find @last_change.whodunnit.to_i 
    end 

В шоу-странице

<%= @user_who_made_the_change %> 

Однако я получаю результирующую ошибку: неопределенный метод `whodunnit» для ноль: NilClass

в приложение /controllers/people_controller.rb:15:in `show '

Любая помощь будет высоко ценится, благодаря

+0

Кажется, что @ person.versions ничего не возвращает, поэтому последнее изменение равно нулю, и приложение выходит из строя. Возможно ли, что вы действительно не внесли каких-либо изменений в этот конкретный человек после настройки бумажного драгоценного камня? – Dabrorius

ответ

1

Есть много причин для сохранения данных опускаем версии (конфигурации, сохранить без обратных вызовов, за исключением из консоли ...)

Я думаю, вы должны проверить, если вы иметь информацию для показа:

def show 
    @last_change = @person.versions.last 
    @user_who_made_the_change = (User.find(@last_change.whodunnit.to_i) if @last_change && @last_change.whodunnit) || nil 
end 

Это должно сделать трюк.

+0

вот и все, спасибо! – ace973

+0

Добро пожаловать! –

Смежные вопросы