Rails collection_select不接受a:selected选项

时间:2012-12-20 23:45:58

标签: ruby-on-rails ruby hash

我正在使用collection_select来显示哈希的内容:

哈希

CATEGORY1_TEXT_STYLE = {
  'Normal' => 'normal',
  'Normal Centered' => 'normal center',
  'Bold' => 'bold'
  ...
}

收藏选择

= collection_select :category1_style1, :first, Homepage::CATEGORY1_TEXT_STYLE, :last, :first, options = { :selected => style_selected(@style.first) }

style_selected(来自帮助者)

def style_selected(value)
  returnval = ''
  Homepage::CATEGORY1_TEXT_STYLE.each { |key, val| returnval = key if val == value }
  returnval
end

控制器

@style = Homepage.find(0).category1_style.gsub('-', '').split("\n")[1..-1]

输出:[" bold center", " blue center", " normal center", " blue center"]

这令人困惑,因为我不知道如何让它根据该哈希选择一个选定的值。我在使用id值(数字)之前已经完成了它并且它可以工作,但是这个键/值对都是字符串,而:selected => ""字段似乎不想再将字符串匹配,无论它是否是匹配键或值(我已经尝试过)。

在处理字符串时,有关尝试使用集合选择的任何见解会显示默认的选定值吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

答案在这里:http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select#632--selected

  

如果您希望默认选择某个对象,请务必使用其ID,而不是整个对象。