【问题标题】:Rails: How to add custom data-attributes in collection_selectRails:如何在 collection_select 中添加自定义数据属性
【发布时间】:2016-03-18 18:06:28
【问题描述】:

我正在研究使用 Rails 中的 collection_select 表单助手将自定义数据属性添加到选项标签的解决方案。

我在 stackoverflow 上研究了一些帖子,并在查阅了一些 API 文档后进行了很多试验和错误。我快到了,但遗憾的是我的解决方案只将属性添加到select-tag 而不是option-tags。

这样我填充了 html-options-hash(第 6 位):

<%= f.collection_select(:parallax_id, @parallax.all, :id, :title, {}, { :"data-icon" => @parallax.map{ |p| "#{p.image}"}} ) %>

这会产生一个选择标签,如:

<select data-icon="/uploads/image/image/4/169_strecken-ausgang.jpg" name="game[parallax_id]" id="game_parallax_id">...</select>

但我想要获得data-icon 属性的选项。当我切换位置并将我的数据图标添加到选项哈希(第 5 位)时,没有任何输出。

【问题讨论】:

  • 你能举个例子说明你希望选项如何在 html 中出现吗?
  • 我想要这个data-icon 在选项标签级别,像这样:&lt;option data-icon="/uploads/image/image/4/169_strecken-ausgang.jpg" ...

标签: html ruby-on-rails forms


【解决方案1】:

这是你想要的吗?

= f.select :parallax_id, options_for_select(@parallax.map {|p| [p.title, p.id, {'data-icon' => p.image }]})

【讨论】:

  • 非常感谢。我想知道为什么它可以与 select 助手一起使用,但不能与 collection_select 助手一起使用。在提出问题之前,我使用collection_select 尝试了与您类似的命令,但它没有为我提供此结果。所以现在我只需要更改我的应用程序的表单,但这没关系。我很高兴它像这样工作。使用.each 循环手动输出选项更方便。谢谢你。 :)
  • 它之所以有效,是因为它是 documented 功能:You can optionally provide HTML attributes as the last element of the array.。但我也不知道。 +1 晃。
  • 这对我帮助很大,当我试图弄清楚如何只禁用特定选项时。我不知道列表中的第三个参数(名称、id、属性)
【解决方案2】:

仅供参考,我正在研究这个问题,在这里找到了更合适的解决方案:How do I set the HTML options for collection_select in Rails?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 2021-10-25
  • 2015-09-25
相关资源
最近更新 更多