2010-06-01 41 views
13

一切正常,沒事的時候我嘗試呈現的部分是這樣的:在Rails中渲染partials時,'locals'可以與'collection'一起使用嗎?

= render :partial => "/shared/enquiry/car_type", :collection => @enquiry.available_car_types 

但是,如果我也想通過一個變量(在這種情況下,「路徑」,因爲我在兩個形式分享這部分),路徑是不提供給我:

= render :partial => "/shared/enquiry/car_type", :collection => @enquiry.available_car_types, :locals => {:path => customers_enquiry_path} 

我試着走動的事情,但沒有什麼似乎工作,領導讓我相信一個不能用當地人的集合。任何幫助,將不勝感激。

gav

+0

你能否提供更多細節如何「沒有什麼似乎工作」? – 2010-06-01 15:57:56

回答

-8

不,你不能一起使用它們。參考this

我認爲你必須做一些像您正在使用什麼版本以下

<% for ad in @enquiry.available_car_types %> 
    <%= render :partial => "/shared/enquiry/car_type", :locals =>{ :ad => ad, :path =>customers_enquiry_path } %> 
    <% end %> 
+1

在參考文獻中哪裏說你不能一起使用它們?根據當前的導軌指南,使用:locals和:collection是允許的 – Urkle 2012-03-05 19:40:30

+1

正如其他評論所說,這似乎是允許的,如Rails指南中所述。 – 2012-08-29 14:24:51

+4

我會再次強調,這可以將它們一起使用。我多次使用這種方法。 – raidfive 2012-09-12 16:03:33

9

?用我2.3.5我能做到這一點:

render :partial => "/site_articles/article", :collection => @site_articles, :locals => { :footer => true } 

,您可以在其他地方找到解釋的,this如3.4.6。

1

@Gav,你遇到了兩個問題。

  1. render傳遞集合作爲第一個參數時忽略locals選項。您需要改爲指定partialcollection參數選項,就像您在第二個示例中所述。

  2. path可能落入保留字的領域。嘗試使用別的東西。

17

對於Rails的4.x的,如果你通過收集直接渲染(其中,如果你想使用自動部分選擇了非均質集合體你必須做),下一個參數被解釋爲當地人的哈希。

嘗試以下操作:

= render @enquiry.available_car_types, :path => customers_enquiry_path 
+0

謝謝先生!我無法在文檔中找到這些信息... – 2015-04-07 12:25:23

20

BTW,對我來說,就像導遊說, 指定呼叫的:as選項部分

enter image description here

+1

這是最好的答案,謝謝。 – Abram 2015-07-08 15:06:29

+0

@gav請您將此答案標記爲正確的解決方案嗎? – Ash 2017-06-13 03:43:05

相關問題