2014-02-04 2 views
0

У меня есть модель Car которая has_paper_trail. Как я могу найти все cars, где и где было изменено или создано current_user? Я мог бы пройти через все из них, но это кошмар. Некоторые where поиск - это то, что я ищу, но не могу найти.Найти все поменявшие объекты для данного пользователя

+0

У Вас есть столбец изменен и CREATED_BY в автомобилях таблицы? – sunil

+0

У меня есть 'updated_at' и' created_at' в таблице 'Car'. Но как это помогает найти «автомобили», которые были созданы/изменены «current_user»? – wintermeyer

ответ

1

Должно быть столбец whoddunnit в таблице versions, который вы можете запросить в сочетании с item_type, но это полезно, только если оно записано правильно.

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

PaperTrail::Version.where(whodunnit: current_user.id, item_type: 'Car').select('distinct item_id') 

Смотрите также https://github.com/airblade/paper_trail#finding-out-who-was-responsible-for-a-change

+0

Но как я могу сделать обратный поиск? Я знаю, как найти «Пользователь», который сделал последнее изменение, но я не знаю, как найти последние изменения с помощью «current_user». – wintermeyer

+0

@wintermeyer Я добавил пример кода. –

+0

Не работает для меня: >> Version.where (whodunnit: current_user.id, item_type: 'Автомобиль'). Выберите (: item_id) .distinct NameError: неинициализированная постоянная версия от (IRB): 3 из /Users/xyz/.rvm/gems/ruby-2.1.0/gems/railties-4.0.2/lib/rails/commands/console.rb:90:в 'start ' из /Users/xyz/.rvm /gems/ruby-2.1.0/gems/railties-4.0.2/lib/rails/commands/console.rb:9:в 'start ' из /Users/xyz/.rvm/gems/ruby-2.1.0 /gems/railties-4.0.2/lib/rails/commands.rb:62:in ' ' из bin/rails: 4: in' require' из bin/rails: 4: in '

' >> – wintermeyer

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