我已经找到了解决问题的方法。只想与他人分享。
因此,我正在编写一个 Rails 应用程序,它使用简单的表单来生成表单,并且样式由 materialize css 框架控制。
我遇到的第一个问题是让简单表单输出一个 bool 值类型为复选框的输入标签。检查他们的文档后,这是我的解决方案:
f.input :delivery_check, as: :boolean, label: "Check if order was delivered"
然而,虽然简单的表单输出输入带有类型复选框的标签,但只有该框的标 checkout 现在 View 中。
最佳答案
这是我的工作解决方案:
首先,阅读 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
现在,在你调用简单表单输入助手的 View 模板中,你应该省略 as::boolean 选项,并通过 input_html 传入类型(否则它会生成两组复选框输入标签)
f.input :delivery_check, :input_html => { :type => "checkbox", :id => "delivery_check" }, wrapper: :my_checkbox, label: "Check if order was delivered"
这只是一个简单的问题,让我卡住了很长一段时间。希望它能帮助其他有类似问题的人。
关于ruby-on-rails - 在 rails 中使用 materialize css 框架和简单表单时,复选框不会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36510903/