我有一个帐户和场所的表格,一个帐户可以有很多场所。如何显示子记录列表?
我在帐户索引页面上显示所有帐户为部分帐户,并希望每个帐户都包含与其链接的场馆名称。
继承人我有:
帐户部分
<%= 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 %>
我得到这个错误:
NoMethodError in Accounts#index
undefined method `venues' for nil:NilClass
Extracted source (around line #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偏刚刚看了“测试”,它加载没有错误,但显示的字测试的4倍( theres 4帐户记录)如果我添加一个新的帐户记录它显示单词测试5次。
嗨,谢谢你的回复。我已经建立了一些代码给出的“无法找到没有ID的帐户”错误的关系。 – Dave
是的,对不起,请参阅上面的“编辑两个” - 我没有发现你正在调用'index'方法,所以我假设'show',它会有一个ID参数。 –
另外,如果'@ account'确实是一个集合,你应该将它重命名为'@ accounts' –