Показать последние измененные таблицы / записи 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 ...,

Другие вопросы по тегам