使用Simple Form gem时,是否可以指定包装器及其HTML?我不想通过HTML手动创建<div>
,但想知道是否有wrapper
个选项可以传入simple_fields_for
。
鉴于
<%= f.simple_fields_for :xxx, do |xxx| %>
...
<% end %>
我希望simple_fields_for
围绕其中的任何代码输出创建一个包装器<div class="xyz">...</div>
类似问题:
答案 0 :(得分:2)
最简单的方法可能就是创建一个包裹simple_fields_for
的方法。
# config/initializers/special_form_builder.rb
module SpecialFormBuilder
def special_fields_for(record_name, record_object = nil, options = {}, &block)
super.simple_fields_for(record_name, record_object = nil, options = {}) do
content_tag :div, class: "xyz" do
block.call
end
end
end
end
module SimpleForm
class FormBuilder
include SpecialFormBuilder
end
end
答案 1 :(得分:0)
我正面临这个问题,给定的解决方案不起作用,问题在于隐藏的id字段在wrapper元素外部呈现。
问题似乎不是simple_form,问题出在FormHelper#fields_for_nested_model方法中。
此外,简单表单在simple_form_for上接受wrapper
选项,但它定义了嵌套表单输入中使用的默认包装器,而不是表单本身的包装器。
我看到的唯一解决方案是使用选项include_id: false
并在wrapper标签中添加隐藏字段。