2011-04-01 56 views
0

我的網站導航顯然存儲在應用程序佈局文件中。該導航的一部分由數據庫驅動。如何在佈局中渲染局部並傳遞對象的集合以便渲染?使用數據在佈局文件中渲染部分

編輯: 我認爲我的問題圍繞着如何將數據導入部分,是從應用程序控制器完成,還是必須在每個控制器的每個操作中添加數據?

回答

2

如果您只想傳遞一個對象,則可以使用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 %> 
+0

因此,在你第一個例子中富將是獲取數據@my_collection行動的名字嗎? – 2011-04-01 21:58:17

+0

在第一個示例中,foo是部分所在的views子目錄。 – 2011-04-01 22:01:20

+0

完整的文檔在這裏:http://api.rubyonrails.org/classes/ActionView/Partials.html – 2011-04-01 22:02:03