0

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

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

它给出了以下错误:undefined methodnil:NilClass`的审计

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

我的控制器显示:

  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但这并不是关于审计的具体问题。我没有找到更简单的宝石,所以这可能有效。但我仍在为观点而苦苦挣扎

4

1 回答 1

0

false是正确的回应nil.respond_to?(:audits)

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

<% if @contracten.present? %>
  <p><%= @contracten.respond_to?(:audits) %></p>  
  <%= @contracten.audits.each do |audit| %>
    <br /><%= audit.version %>
  <% end %>
<% end %>
于 2012-09-05T09:27:19.390 回答