gpt4 book ai didi

ruby-on-rails - 如何将 SimpleForm 输入配置为默认为无包装器

转载 作者:行者123 更新时间:2023-12-04 03:36:31 26 4
gpt4 key购买 nike

给定一个自定义的 SimpleForm 输入

class MyCustomInput < SimpleForm::Inputs::Base
# some stuff
end

我如何配置它,以便默认情况下这些输入没有包装器。

通常我会像这样设置特定于输入的包装器:

# initializers/simpleform
config.wrapper_mappings = {
my_custom: :my_wrapper
}

但以下不起作用,默认的 SimpleForm 包装器仍然适用。

config.wrapper_mappings = {
my_custom: false
}

我知道有一些方法可以在 View 中实现这一点,例如,

<%= f.input :attribute, as: :my_custom, wrapper: false %>

<%= f.input_field :attribute %>

但这不是我要找的。

有没有一种方法可以配置输入,以便默认没有包装器?

最佳答案

除了您在问题中已经提到的选项,仅使用 input_field 而不是 input (更多信息:https://github.com/plataformatec/simple_form#stripping-away-all-wrapper-divs),您可以定义包装器这个(未经测试):

SimpleForm.setup do |config|
config.wrapper_mappings = {
my_custom: :wrapper_false,
}

config.wrappers :wrapper_false, tag: false do |b|
b.use :placeholder
b.use :label_input
b.use :hint, wrap_with: { tag: :span, class: :hint }
b.use :error, wrap_with: { tag: :span, class: :error }
end
end

然后在您的表单中:

<%= f.input :attribute, as: :my_custom %>

有关包装器 API 的更多信息:https://github.com/plataformatec/simple_form#the-wrappers-api

编辑:

考虑到你提到的情况后,I sent a PRsimple_form 项目以允许在 wrapper_mappings 中配置 wrapper: false。如果它被接受,您应该能够像这样在初始化程序中直接禁用包装器:

config.wrapper_mappings = {
my_custom: false
}

关于ruby-on-rails - 如何将 SimpleForm 输入配置为默认为无包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51916852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com