2015-11-03 89 views
2

我想創建一個自定義的form_tag幫手我的看法與一些默認fields這樣的:的form_tag默認輸入字段

=form_tag(url) do 
    -fields.each do |name, value| 
    =hidden_field_tag name, value 

,但是當我在表單助手類我寫的東西,如:

def my_form_tag 
    form_tag(url) do 
    fields.each do |name, value| 
    hidden_field_tag name, value 
    end 
end 
end 

沒有添加hidden_field_tags。 看來只顯示塊的結果。在這種情況下,如果我在塊的末尾添加類似hidden_field_tag 'name', 'value'的東西,它將被顯示。 那麼如何顯示所有不同的字段?

感謝

+1

你從哪裏得到'fields'? –

+0

'fields'只是一個簡單的哈希,我想循環。然而,使用'map'和'join'似乎已經做到了。謝謝 – orlansides

回答

0

好了,所以,而不是做一個each我做了mapjoinhtml_safe

def my_form_tag 
    form_tag(url) do 
    fields.map do |name, value| 
     hidden_field_tag name, value 
    end.join.html_safe 
    end 
end 
+0

不解決問題 - 「字段」沒有在任何地方聲明 –

+0

如上所述,字段只是一個散列。假設它是'fields = {key1:'key1',key2:'key2'}'。我沒有聲明'url'或者讓我們說它是'url ='http:// myurl.com'' – orlansides

0

嘗試做局部與此的form_tag,然後在你的my_form_tag方法只呈現這個部分。這樣你就可以得到整個表格。