0
我的網站導航顯然存儲在應用程序佈局文件中。該導航的一部分由數據庫驅動。如何在佈局中渲染局部並傳遞對象的集合以便渲染?使用數據在佈局文件中渲染部分
編輯: 我認爲我的問題圍繞着如何將數據導入部分,是從應用程序控制器完成,還是必須在每個控制器的每個操作中添加數據?
我的網站導航顯然存儲在應用程序佈局文件中。該導航的一部分由數據庫驅動。如何在佈局中渲染局部並傳遞對象的集合以便渲染?使用數據在佈局文件中渲染部分
編輯: 我認爲我的問題圍繞着如何將數據導入部分,是從應用程序控制器完成,還是必須在每個控制器的每個操作中添加數據?
如果您只想傳遞一個對象,則可以使用render
上的object
鍵。傳遞的對象將作爲與局部同名的局部變量來訪問。所以如果部分被稱爲navigation
,局部變量將是navigation
。
<%= render :partial => 'foo/navigation', :object => @my_collection
在部分:
<% for obj in navigation %>
...
<% end %>
如果你要傳遞多個對象,那麼你可以使用locals
關鍵。然後,佈局中的局部變量的名稱就是傳遞的散列的鍵。
<%= render :partial => 'foo/navigation', :locals => { :foo => 'Hello', :bar => 'World' }
在部分:
<%= foo %>
<%= bar %>
因此,在你第一個例子中富將是獲取數據@my_collection行動的名字嗎? – 2011-04-01 21:58:17
在第一個示例中,foo是部分所在的views子目錄。 – 2011-04-01 22:01:20
完整的文檔在這裏:http://api.rubyonrails.org/classes/ActionView/Partials.html – 2011-04-01 22:02:03