我仍然无法弄清楚如何实现这一点,因为我是这个新手。有些人打电话给我说我必须使用审计,所以它确实如此。这是我的控制器:
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应用程序,我可以在数据库中存储合同,它还在数据库中有人员和工厂表。 现在我想要一个最后修改过的表。
我希望当人们更新/添加新记录到数据库时,它会在屏幕截图右侧显示修改。
谢谢:D
答案 0 :(得分:0)
您需要的是编辑的审核历史记录。
您可以自己实现(如果您确实想要自己编写自定义业务逻辑,则可能有意义)通过挂钩到该模型的ActiveRecord callbacks。
示例实现可能如下所示:
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 ...
从视图中访问它们。
答案 1 :(得分:0)
根据您的问题,您似乎只需要一个基于updated_at字段的列表。
怎么样 - @contract_list = Contract.all.order( "updated_at DESC").limit(10)
然后你可以迭代视图中的列表。
好看的页面!