2

为什么除了 content_tag 之外的所有 content_tags 都显示:i

  def sign_full_tag(group, obj, name, input_type="text", size="12", popover=true)
    content_tag :div, class: "row" do
      content_tag :div, class: "col-md-" + size do
        content_tag :div, class: "form-group left-inner-addon" + class_for_invalid_input(obj, name) do
          content_tag(:i, "", class: "fa fa-user fa-fw text-muted") # NOT DISPLAY!!!
          group.text_field( name,
                            class: "form-control" + (popover ? " popover-add" : ""),
                            id: name.to_s.gsub("_", "-"),
                            type: input_type,
                            placeholder: "#{t('sign_up.placeholder.' + name.to_s)}",
                            data: { container: "body",
                                    toggle: "popover",
                                    placement: "bottom",
                                    content: (popover ?  "#{t('sign_up.popover.' + name.to_s)}" : nil) })

        end
      end
    end
  end

当我渲染这个助手时,我在浏览器中看不到标签“i”。这应该如何工作?

4

1 回答 1

3

那是因为只返回块中的最后一条语句。您必须连接这两个语句,以便将其作为一个字符串返回:

content_tag(:div, etc etc) do
  content_tag(:i, "") + group.text_field(name, etc etc)
end
于 2014-06-16T14:58:35.957 回答