【问题标题】:Rails 3.2 error showing Audited changes in viewsRails 3.2 错误显示视图中的审核更改
【发布时间】:2012-07-18 07:47:57
【问题描述】:

我有一个奇怪的问题。当我在合同视图中有此代码时,我的审核 gem 在我的视图中不起作用:

<p><%= @contracten.respond_to?(:audits) %></p>
<br />
<%= @contracten.audits.each do |audit| %>
  <%= audit.version %>
  <br />
<% end %>

它给出以下错误:undefined methodaudits' for nil:NilClass`

当我的视图中只有这一行时:&lt;p&gt;&lt;%= @contracten.respond_to?(:audits) %&gt;&lt;/p&gt; 它显示的是假而不是真,所以我认为我的控制器工作不正常。

我的控制器显示:

  def show
    add_breadcrumb 'Contract Bekijken', :contracten_path

    @contracten = Contracten.find(params[:id])
  end

我的模特:

class Contracten < ActiveRecord::Base

  audited

  has_attached_file :pdf

  attr_accessible :betalingsperiodeeenheidid, :betalingstermijn, :contractduur, :contractid, :contractsoortid, :datumeinde, :datumingang, :naam, :omschrijving, :opzegtermijn, :organisatieid, :persoonid, :vestigingid, :pdf

end

我在这里发布了一个类似的问题:Show Last modified tables/records Rails 3.2,但这并不是关于已审计的具体问题。我没有找到更简单的宝石,所以这可能有效。但我仍在为观点而苦苦挣扎

【问题讨论】:

  • 在视图顶部尝试 - 它会输出任何内容吗?
  • 当我有上面的代码时它不起作用。当我的视图中只有


    然后使用调试代码时,它会给出以下输出:--- ... false

标签: html ruby-on-rails controller ruby-on-rails-3.2 acts-as-audited


【解决方案1】:

falsenil.respond_to?(:audits) 的正确响应

您的@contracten 设置不正确,它为零。你可能需要:

<% if @contracten.present? %>
  <p><%= @contracten.respond_to?(:audits) %></p>  
  <%= @contracten.audits.each do |audit| %>
    <br /><%= audit.version %>
  <% end %>
<% end %>

【讨论】:

  • 很抱歉我的回复迟了,但这个项目是为学校设计的。但是我已经尝试过了,现在当我向数据库添加新记录时它没有显示任何内容。我不知道为什么>.
  • 是的 - 这意味着“@contracten”的设置不正确。里面什么都没有……是零。如果“create”方法现在没有显示任何内容,您需要向我们展示 create 方法.. 但我建议您首先检查以确保实际设置了 @contracten(例如 @contracten = Contracten.create(params[:contracten]))跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
  • 2012-05-13
  • 1970-01-01
  • 2015-04-30
相关资源
最近更新 更多