gpt4 book ai didi

ruby-on-rails - 使用简单表单将数据属性添加到自定义包装器

转载 作者:行者123 更新时间:2023-12-02 15:55:27 26 4
gpt4 key购买 nike

我已经为 simple_form 创建了一个自定义包装器,但我似乎找不到将数据属性添加到生成的包装器元素的方法。我正在尝试将其添加到名为 switch 的内部包装类中。

我希望能够将其添加到包装器中,如果可能的话,不要添加到 View 层中。

config.wrappers :toggle, :tag => 'div', :class => 'control-group', :error_class => 'error' do |b|
b.use :html5
b.use :placeholder
b.use :label
b.wrapper :tag => 'div', :class => 'controls' do |ba|
ba.wrapper :tag => 'div', :class => 'switch' do |box|
box.use :input
end
ba.use :hint, :wrap_with => { :tag => 'span', :class => 'help-block' }
ba.use :error, :wrap_with => { :tag => 'span', :class => 'help-inline' }
end
end

= form.input :element, :label => t('views.items.attributes.element'), :wrapper => :toggle

输出

<div class="control-group boolean optional">
<label class="boolean optional control-label" for="item_element">Element</label>
<div class="controls">
<div class="switch">
<input name="item[element]" type="hidden" value="0">
<input class="boolean optional" id="item_element" name="item[element]" type="checkbox" value="1">
</div>
</div>
</div>

所需输出

<div class="control-group boolean optional">
<label class="boolean optional control-label" for="item_element">Element</label>
<div class="controls">
<div class="switch" data-label="blah" data-id="something">
<input name="item[element]" type="hidden" value="0">
<input class="boolean optional" id="item_element" name="item[element]" type="checkbox" value="1">
</div>
</div>
</div>

最佳答案

@Learner's answer很接近。诀窍是包含 html哈希:

ba.wrapper tag: 'div', 
html: { data: { id: 'something', label: 'blah' },
class: 'switch' do |box|
box.use :input
end

注意:此方法适用于 <builder>.wrapper方法,但不在 config.wrappers 上, <builder>.use

关于ruby-on-rails - 使用简单表单将数据属性添加到自定义包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14873868/

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