选择输出空白值和标签值的选项

时间:2019-06-18 19:40:16

标签: ruby-on-rails ruby

我正在尝试从哈希数组中填充选择标签。当我使用options_for_select时,它会输出正确数量的选项,但是值标签和选项文本不存在。

[{:name=>"Label", :id=>"326613406", :thumb=>"https://something/whatever"},another hash]

formatted_options = options_for_select(select_options.collect { |f| [ f['name'], f['id'], {'data-thumb' => f['thumb']} ] })

return select_tag "#{object.class.to_s.downcase + '[content][' + field.name + ']'}", formatted_options, {class: "image-support-select"}

我希望可以显示选项元素的值和文本。另外,我想为每个选项标签都包含一个数据属性。

1 个答案:

答案 0 :(得分:1)

您将哈希键定义为symbol,但在循环中,您将其访问为string

像这样更改循环:

formatted_options = options_for_select(select_options.collect { |f| [ f[:name], f[:id], {'data-thumb' => f[:thumb]} ] })

如果您想同时使用symbol键和string键访问哈希,则可以调用with_indifferent_access哈希方法

在这种情况下,您需要像这样更改哈希值:

[{:name=>"Label", :id=>"326613406", :thumb=>"https://something/whatever"}.with_indifferent_access]