【问题标题】:Show Last modified tables/records Rails 3.2显示上次修改的表/记录 Rails 3.2
【发布时间】:2012-07-02 15:35:57
【问题描述】:

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

  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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 audit last-modified acts-as-audited


    【解决方案1】:

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

    您可以通过挂钩到该模型的 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 变量中拥有所有审计的时间戳,并且可以使用 &lt;% @audits.each do ... 从视图中访问它们。

    【讨论】:

    • 我只需要显示最后修改的记录,所以我认为 gem 会起作用 :D 谢谢
    • 嗨,欢迎来到 StackOverflow :) 如果答案对您有帮助,您通常应该点赞并将其标记为已回答,如果它解决了您的问题 :)
    • 我还有一个问题。如何将这些信息呈现到我的视图中?这样每个人都可以看到最后修改的记录吗?
    • 更新了答案.. 希望对您有所帮助
    • 感谢您的回答,我会试试看:)
    【解决方案2】:

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

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

    然后你就可以遍历视图中的列表了。

    漂亮的页面!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多