Показать последние измененные таблицы / записи Rails 3.2
Я до сих пор не могу понять, как это реализовать, так как я новичок в этом. некоторые люди помогли мне и сказали, что я должен использовать Одитированный, так оно и было. это мой контроллер:
def show
add_breadcrumb 'Contract Bekijken', :contracten_path
@contracten = Contracten.find(params[:id])
@audits = @contracten.audits.collect { |a| a.created_at }
respond_to do |format|
format.html # show.html.erb
format.json { render json: @contracten }
end
end
Вот пирожок всего моего контролера. http://pastie.org/4270702
Но я не знаю, правильно ли это или как реализовать это в моих взглядах.
Я надеюсь, что кто-то действительно может помочь, потому что мне действительно нужно, чтобы это работало на этой неделе.
Благодарю.
У меня есть приложение rails, в котором я могу хранить контракты в базе данных, в нем также есть таблицы лиц и фабрик. Теперь я хотел бы иметь последнюю измененную таблицу.
Я хотел бы, чтобы когда люди обновляли / добавляли новую запись в базу данных, чтобы она показывала изменения в div прямо на скриншоте.
Спасибо
2 ответа
Из вашего вопроса кажется, что вам просто нужен список на основе поля updated_at.
Как насчет - @contract_list = Contract.all.order( "updated_at DESC").limit(10)
Затем вы можете перебрать список в представлении.
Приятно выглядящая страница!
Что вам нужно, так это история проверок правок.
Вы можете либо реализовать это самостоятельно (может иметь смысл, если есть собственная бизнес-логика, которую вы действительно хотите написать самостоятельно), подключившись к обратным вызовам ActiveRecord для этой модели.
Пример реализации может выглядеть так:
class Contract < ActiveRecord::Base
after_save :audit
def audit
log = AuditLog.new(:user_id => current_user, :action => :update, ...)
log.save
end
end
Это предполагает, что у вас есть модель AuditLog, которая содержит соответствующие поля, в которые вы хотите войти, и в своем методе аудита вы пишете в нее.
Или более простой способ - использовать камень Audited, который делает это за вас (но может иметь некоторые ограничения).
Из документации Audited кажется, что вы можете просто получить Contract
записывать и использовать audits
по этой модели, чтобы затем получить доступ к проверенной информации.
Образец
def show
@contract = Contract.find(params[:id])
@audits = @contract.audits.collect { |a| a.created_at }
end
Теперь у вас есть все отметки времени проверок в @audits
переменная и может получить к ним доступ с помощью вида <% @audits.each do ...
,