我遇到以下代码问题:
= f.collection_select :ch_professional, @ch_professionals
我正在尝试使用select设置ch_professional
字段。 @ch_professionals
是一个字符串数组。
我收到以下错误:
ActionView :: Template :: Error({}不是符号)
我在collection_select
上查找过文档,但我找不到正确的语法。
答案 0 :(得分:1)
collection_select
的签名是
collection_select(object,method,collection,value_method,text_method,options = {},html_options = {})
它期望value_method
和text_method
是带有方法名称的符号,这些方法名称将被调用以从每个数组元素中获取相应的值。
关于{}
的错误是由于rails处理选项哈希值的方式,因此{}
的默认哈希值最终在value_method
中结束。
所以尝试类似:
= f.collection_select :ch_professional, @ch_professionals, :to_s, :to_s
答案 1 :(得分:1)
如果你只有一个字符串数组,并且不需要为选项的值和文本设置不同的值,请使用select
表单助手,例如。
= f.select :ch_professional, @ch_professionals