我有一个奇怪的问题。当我在contracten视图中包含此代码时,我的审核gem在我的视图中不起作用:
<p><%= @contracten.respond_to?(:audits) %></p>
<br />
<%= @contracten.audits.each do |audit| %>
<%= audit.version %>
<br />
<% end %>
它出现以下错误:undefined method
审核'为nil: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但这并不是关于审计的具体问题。我没有找到一个更简单的宝石,所以这可能会奏效。但我仍在努力与观点
答案 0 :(得分: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 %>