我正在尝试从哈希数组中填充选择标签。当我使用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"}
我希望可以显示选项元素的值和文本。另外,我想为每个选项标签都包含一个数据属性。
答案 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]