アカウントが多くの会場を持つことができるアカウントと会場のテーブルがあります。
アカウント インデックス ページにすべてのアカウントを部分的に表示していますが、それぞれにリンクされている会場の名前を含めたいと考えています。
私が持っているものは次のとおりです。
アカウントの一部
<%= link_to free_account do %>
<div class="account_partial">
<span class="account_header"><%= free_account.name %></span> - <span class="free_account_highlight">(<%= free_account.role %>)</span><br>
<%= render :partial => 'venues/account_venue', :collection => @account.venues %>
</div>
<% end %>
account_venue パーシャル
<%= venue.name %>
次のエラーが表示されます。
アカウント#indexのNoMethodError
nil:NilClass の未定義のメソッド「会場」
抽出されたソース (12 行目あたり):
12: <%= render :partial => 'venues/account_venue', :collection => @account.venues %>
どんな助けでも大歓迎です!
編集
accounts_controller
class AccountsController < ApplicationController
load_and_authorize_resource
def index
@accounts = Account.all(:include => :venues)
end
end
アカウント index.html.erb
<div id="narrow_container">
<div class="free_accounts_container">
<h2 class="show_orange">Free accounts</h3>
<%= render :partial => 'free_account', :collection => @accounts %>
</div>
<div class="premium_accounts_container">
<h2 class="show_orange">Premium accounts</h3>
<%= render :partial => 'premium_account', :collection => @accounts %><br><br>
</div>
<div class="clearall"></div>
<div class="button">
<%= link_to 'add account', new_account_path %>
</div>
</div>
_free_account.html.erb
<%= link_to free_account do %>
<% if free_account.role == "free" %>
<div class="account_partial">
<span class="account_header"><%= free_account.name %></span> - <span class="free_account_highlight">(<%= free_account.role %>)</span><br>
<div class="owner_details">
<span class="pre_account_highlight">Owners username:</span><span class="account_highlight"><%= free_account.user.username %></span>
<span class="pre_account_highlight">Owners e-mail:</span><span class="account_highlight"><%= free_account.user.email %></span>
</div>
<div class="account_details">
</div>
<%= render :partial => 'venues/account_venue', :collection => @account.venues %>
</div>
<% else %>
<% end %>
<% end %>
アップデート
部分呼び出しを次のように変更すると:
<%= render :partial => 'venues/account_venue', :collection => @accounts %>
account_venue パーシャルは「test」を読み取るだけで、エラーなしで読み込まれますが、新しいアカウント レコードを追加すると、test という単語が 4 回表示されます (4 つのアカウント レコードがあります)。