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> trueではなくfalseが表示されるため、コントローラーが正しく機能していないと思います。

私のコントローラーショー:

  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

私はここに同様の質問を投稿しました:最後に変更されたテーブル/レコード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 に答える