Ruby on rails 复选框赢得';在rails中使用MaterializeCSS框架和简单表单时,不会出现

Ruby on rails 复选框赢得';在rails中使用MaterializeCSS框架和简单表单时,不会出现,ruby-on-rails,checkbox,simple-form,materialize,Ruby On Rails,Checkbox,Simple Form,Materialize,我已经找到了解决问题的办法。只是想和别人分享 因此,我正在编写一个rails应用程序,它使用简单的表单生成表单,样式由MaterializeCSS框架控制 我遇到的第一个问题是让simple form输出一个输入标记,该标记的类型为布尔值的checkbox。检查他们的文档后,以下是我的解决方案: f.input :delivery_check, as: :boolean, label: "Check if order was delivered" 然而,尽管简单的表单输出使用类型checkb

我已经找到了解决问题的办法。只是想和别人分享

因此,我正在编写一个rails应用程序,它使用简单的表单生成表单,样式由MaterializeCSS框架控制

我遇到的第一个问题是让simple form输出一个输入标记,该标记的类型为布尔值的checkbox。检查他们的文档后,以下是我的解决方案:

f.input :delivery_check, as: :boolean, label: "Check if order was delivered" 

然而,尽管简单的表单输出使用类型checkbox输入标记,但视图中只显示该框的标签

以下是我的工作解决方案:

首先,阅读materialize网站上的代码示例。输入标记需要出现在标签标记之前。因此,我们需要以简单的形式定制我们自己的包装器

因此,在config/initializers目录中,应该有一个simple_form.rb(或者如果初始化了simple_form_bootstrap.rb)

像这样添加包装器

config.wrappers "my_checkbox", tag: 'div', class: "col s4", error_class: 'has-error' do |b|
  b.use :input
  b.use :label
  b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
  b.use :hint,  wrap_with: { tag: 'p', class: 'help-block' }
end
现在,在调用simple form input helper的视图模板中,应该省略as::boolean选项,并通过input_html传入类型(否则会生成两组复选框输入标记)

这只是一个简单的问题,让我陷入了相当长的一段时间。希望它能帮助其他有类似问题的人

f.input :delivery_check, :input_html => { :type => "checkbox", :id => "delivery_check" }, wrapper: :my_checkbox, label: "Check if order was delivered"