ruby-on-rails - 在 rails 中使用 materialize css 框架和简单表单时,复选框不会出现

标签 ruby-on-rails checkbox simple-form materialize

我已经找到了解决问题的方法。只想与他人分享。

因此,我正在编写一个 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/

相关文章:

ruby-on-rails - 如何(大量)减少 Rails 应用程序中的 SQL 查询数量?

ruby-on-rails - Rspec 应该等待线程完成

ruby-on-rails - 在第 2 行第 8 列的上下文中不允许映射值(Psych::SyntaxError)

javascript - Kendo Grid 多选复选框

simple-form - Rails 6 操作文本 - 表单验证错误

ruby-on-rails - 如何使用 ActiveRecord 对深度嵌套的集合进行排序?

css - 带复选框的 select2 输入组中显示的边框半径

javascript - 如何在选中其他复选框时取消选中复选框?

ruby-on-rails - 铁路协会错误

ruby-on-rails - 如何将表单中的两个字段合并为模型中的一个字段