gpt4 book ai didi

ruby-on-rails - ruby on Rails f.select 具有自定义属性的选项

转载 作者:行者123 更新时间:2023-12-03 04:39:37 25 4
gpt4 key购买 nike

我有一个表单选择语句,如下所示:

= f.select :country_id, @countries.map{ |c| [c.name, c.id] }

这段代码的结果是:

...
<option value="1">Andorra</option>
<option value="2">Argentina</option>
...

但我想向我的选项添加自定义 HTML 属性,如下所示:

...
<option value="1" currency_code="XXX">Andorra</option>
<option value="2" currency_code="YYY">Argentina</option>
...

最佳答案

Rails 可以使用现有的 options_for_select 帮助器添加自定义属性来选择选项。您几乎在问题的代码中就得到了正确的答案。使用 html5 数据属性:

<%= f.select :country_id, options_for_select(
@countries.map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] }) %>

添加初始选择:

<%= f.select :country_id, options_for_select(
@countries.map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] },
selected_key = f.object.country_id) %>

如果您需要分组选项,则可以使用 grouped_options_for_select 帮助器,如下所示(如果 @Continues 是大陆对象数组,每个对象都有一个国家/地区方法):

<%= f.select :country_id, grouped_options_for_select(
@continents.map{ |group| [group.name, group.countries.
map{ |c| [c.name, c.id, {'data-currency_code'=>c.currency_code}] } ] },
selected_key = f.object.country_id) %>

功劳应该归于 paul @ pogodan,他发布了关于不是在文档中而是通过阅读 Rails 源代码找到这一点的帖子。 https://web.archive.org/web/20130128223827/http://www.pogodan.com/blog/2011/02/24/custom-html-attributes-in-options-for-select

关于ruby-on-rails - ruby on Rails f.select 具有自定义属性的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052889/

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