2012-03-08 71 views
2

我想編寫一個幫助器方法來簡化使用Bootstrap Twitter構建表單。當我嘗試將label_tag放入輔助方法時,不會輸出任何內容。函數中的其他每個helper_tag方法都不是這個label_tag。任何想法,我做錯了什麼?Rails:幫助器方法中的label_tag不輸出代碼

的名字是一個符號,文字的標籤文本

助手代碼

def bootstrap_form_text_field(name, text) 
    content_tag :div, class: "control-group" do 
     label_tag name, text, class: "control-label" 
     content_tag :div, class: "controls" do 
      text_field_tag name 
     end 
    end   
end 

查看代碼

<%= bootstrap_form_text_field :called_number, "Called Number" %>

輸出

<div class="control-group"><div class="controls"><input id="called_number" name="called_number" type="text" /></div></div>

我使用ruby-1.9.3-p0和rails 3.2.2(如果有幫助的話)。

編輯: 似乎只顯示正在調用的最後一個標籤助手正在顯示。我將label_tag複製到text_field_tag的下方,標籤是唯一顯示的內容。

+0

你在迴應輸出嗎? – 2012-03-08 22:21:22

+0

我更新了我的帖子,我的視圖中的代碼使用以及輸出的HTML – Hersha 2012-03-08 22:23:31

回答

3

試試這個

def bootstrap_form_text_field(name, text) 
    content_tag :div, class: "control-group" do 
     label_tag(name, text, class: "control-label") + 
     content_tag(:div, class: "controls") do 
      text_field_tag name 
     end 
    end   
end 

我不知道這+將工作正確這樣,但如果你有一個以上的每個是結合所有標籤的結果的問題級別,您甚至可以將它們合併到一個變量中,然後在當前範圍的末尾返回該變量。

+0

加劑量工作,我試圖將label_tag和content_tag添加到一個變量輸出後,所述content_tag塊完成運行後沒有祝你好運。 – Hersha 2012-03-08 22:45:23

+0

修正它將每行添加到一個數組然後在最後加入它們,但我討厭它看起來的樣子。 – Hersha 2012-03-08 23:02:15