我是剛剛開始的Ruby-on-Rails新手。在索引頁面中共享視圖的正確方式
我有一個MVC稱爲 「account_types」,經由支架產生,以產生:
- 控制器/ account_types_controller.rb
- 助手/ account_types_helper.rb
- 模型/ account_type.rb
- 觀點/ account_types/_form,編輯,索引等...
去localhost:3000/account_types給我索引視圖。
我想要做的是顯示與應用程序索引頁面中的account_types索引方法中選擇的數據相同的數據作爲列表。
我寫了一個叫account_types/_list.html_erb新觀點如下:
<ul>
<% @account_types.each do |account| %>
<li><% account.label %></li>
<% end %>
</ul>
我然後編輯家/ index.html.erb(這是基於對SO其他問題給出的例子):
<%= render :partial => 'account_types/list', :module_types => @module_types %>
但是我得到
未定義的方法`每個」近親:NilClass
和錯誤顯示從account_types/_list.html.erb,我已經寫了
<% @account_types.each do |account| %>
腳手架意見做工精細的代碼,爲什麼不是我?
部分是否適合在此使用?
在此先感謝。
對不起,如上所述,我已經混淆了每個人與module_types - 這是我嘗試的其他東西 - 它應該是account_types。 '<%= render:partial =>'account_types/list',:account_types => @account_types%>仍然會給出相同的錯誤消息。 – Hellfire
我創建了一個新項目來重新創建此問題。我已經像以前一樣設置了一切。 如果我不添加(amp)account_types = AccountType.all到home_controller.rb,我得到相同的錯誤關於nil.each 如果我(account_types = accountType.all)添加到home_controller.rb然後我得到每個記錄有一個li,但沒有數據列表(這本身很奇怪)。但是,(amp)account_types已經在account_types_controller.rb中定義了,所以爲了DRY的利益,我能以某種方式使用來自account_types的索引控制器,而不必在home控制器中重寫它以在主視圖中使用它? – Hellfire
我想我現在有工作。 http://stackoverflow.com/questions/8869291/what-is-the-correct-way-to-define-an-application-wide-partial-and-its-variables說在'ApplicationController'上使用'before_filter' 。我已經把它放進去了,每個控制器突然都有'account_types'變量。這正是我需要的。 – Hellfire