我有一個帳戶和場所的表格,一個帳戶可以有很多場所。如何顯示子記錄列表?
我在帳戶索引頁面上顯示所有帳戶爲部分帳戶,並希望每個帳戶都包含與其鏈接的場館名稱。
繼承人我有:
帳戶部分
<%= 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' –