【问题标题】:Rails collection_select is not accepting a :selected optionRails collection_select 不接受 :selected 选项
【发布时间】:2012-12-20 23:45:57
【问题描述】:

我正在使用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 => "" 字段似乎不想再匹配一个字符串,无论它是否匹配键或值(我都试过了)。

在处理字符串时尝试让集合选择显示默认选择值有什么见解吗?

谢谢!

【问题讨论】:

  • 您是在form_for @something 还是form_tag 中使用collection_select?无论如何,您能否将您的呼叫分解为collection_select,因为根据您的呼叫方式,我真的不明白您要做什么。

标签: ruby-on-rails ruby hash


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 2016-12-30
    • 2023-03-27
    相关资源
    最近更新 更多