我正在使用rbates方法的嵌套表单:http://railscasts.com/episodes/196-nested-model-form-revised
我也在使用Twitter Bootstrap。
我正在尝试添加带有图标的Add Child
按钮。因此,我修改了link_to_add_fields
并将其重命名为icon_to_add_fields
。这就是我的......
def icon_to_add_fields(name, f, association, icon_class = '', button_color = '')
new_object = f.object.send(association).klass.new
id = new_object.object_id
fields = f.fields_for(association, new_object, child_index: id) do |builder|
render(association.to_s.singularize + "_fields", f: builder)
end
link_to("#", class: "add_fields btn #{button_color}", data: {id: id, fields: fields.gsub("\n", "")}) do
"<i class='icon-plus-sign icon-white'></i> #{name}"
end
end
问题是,我的按钮不是将<i class="icon-plus-sign icon-white"></i> Add Child
呈现为HTML,而是在其上方显示<i class="icon-plus-sign icon-white"></i> Add Child
。
所以,要“修复”这个问题,我会像这样添加simple_format
......
link_to("#", class: "add_fields btn #{button_color}", data: {id: id, fields: fields.gsub("\n", "")}) do
simple_format "<i class='icon-plus-sign icon-white'></i> #{name}"
end
现在,链接中的HTML呈现得很好,BUUUT,里面有p
个标签,我不想要。
我应该最终得到类似的东西:<a class="btn btn-primary" href="#"><i class="icon-plus-sign icon-white"></i> Add Child</a>
如何更正此功能以正确呈现HTML,但不输出p
标签?
答案 0 :(得分:1)
好simple_format
总是用<p>
标记包装结果。但正如对这个问题Rails 3. simple_format do not wrap result in paragraph tags的回答所述,该方法只有9行,并且可以轻松覆盖,不会通过删除部分行来用<p>
标记包装内容。
所以我相信你可以制作一个another_simple_format
帮助器并在icon_to_add_fields
方法上使用它,你就可以了。