0

我仍然无法弄清楚如何实现这一点,因为我是一个新手。有些人帮助我,说我必须使用已审核的,所以确实如此。这是我的控制器:

  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 中的修改。

感谢:D

4

2 回答 2

0

从您的问题来看,您似乎只需要一个基于 updated_at 字段的列表。

怎么样 -@contract_list = Contract.all.order( "updated_at DESC").limit(10)

然后您可以遍历视图中的列表。

好看的页面!

于 2012-07-22T16:14:53.643 回答
0

您需要的是编辑的审核历史记录。

您可以通过挂钩到该模型的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 gem(但可能有一些限制)。

从 Audited 的文档中,您似乎可以简单地获取一条Contract记录并使用该audits模型上的记录来访问已审核的信息。

样本

def show
  @contract = Contract.find(params[:id])
  @audits = @contract.audits.collect { |a| a.created_at }
end

现在,您在变量中拥有了所有审计的时间戳,@audits并且可以使用<% @audits.each do ....

于 2012-07-02T08:25:34.090 回答