0

我使用嵌套形式遵循 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标签?

4

1 回答 1

1

总是用标签simple_format包装结果。<p>但正如对该问题的回答所述,Rails 3.simple_format 不会将结果包装在段落标签中,该方法只有 9 行长,并且可以<p>通过删除一些行很容易地被覆盖以不使用标签包装内容。
所以我相信你可以做一个another_simple_format助手并在你的icon_to_add_fields方法上使用它,你会没事的。

于 2012-07-31T19:38:55.477 回答