Rails:helper方法中的label_tag不输出代码

时间:2012-03-08 22:19:59

标签: ruby ruby-on-rails-3.2

我正在尝试使用Bootstrap Twitter编写一个帮助方法来简化构建表单。当我尝试将label_tag放入辅助方法时,不会输出任何内容。函数中的每个其他helper_tag方法都不适用于此label_tag。关于我做错了什么的想法?

name是符号,text是标签文本

帮助代码

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的正下方,标签是唯一显示的内容。

1 个答案:

答案 0 :(得分: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

我不确定那个+是否能正常 ,但是如果你在每个级别上有多个标签的话,那就是组合所有标签的结果,你甚至可以将它们组合在一个变量中,然后在当前范围的末尾返回该变量。