Rails嵌套的content_tag
我试图将内容标签embedded到自定义帮助器中,以创build如下所示的内容:
<div class="field"> <label>A Label</label> <input class="medium new_value" size="20" type="text" name="value_name" /> </div>
请注意,input不与表单关联,它将通过javascript保存。
这里是助手(它将做更多的只是显示HTML):
module InputHelper def editable_input(label,name) content_tag :div, :class => "field" do content_tag :label,label text_field_tag name,'', :class => 'medium new_value' end end end <%= editable_input 'Year Founded', 'companyStartDate' %>
但是,当我呼叫助手时,标签不显示,只显示input。 如果注释掉text_field_tag,则显示标签。
谢谢!
你需要一个+
来快速修复:D
module InputHelper def editable_input(label,name) content_tag :div, :class => "field" do content_tag(:label,label) + # Note the + in this line text_field_tag(name,'', :class => 'medium new_value') end end end <%= editable_input 'Year Founded', 'companyStartDate' %>
在content_tag :div
块内,只显示最后一个返回的string。
你也可以使用concat方法:
module InputHelper def editable_input(label,name) content_tag :div, :class => "field" do concat(content_tag(:label,label)) concat(text_field_tag(name,'', :class => 'medium new_value')) end end end
来源: 在Rails 3中嵌套content_tag