Ruby on rails 复选框赢得';在rails中使用MaterializeCSS框架和简单表单时,不会出现
我已经找到了解决问题的办法。只是想和别人分享 因此,我正在编写一个rails应用程序,它使用简单的表单生成表单,样式由MaterializeCSS框架控制 我遇到的第一个问题是让simple form输出一个输入标记,该标记的类型为布尔值的checkbox。检查他们的文档后,以下是我的解决方案: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
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"