【发布时间】:2019-06-28 19:43:10
【问题描述】:
我有以下枚举:
enum fulfillment_status: { processing: 1, partially_fulfilled: 2, fulfilled: 3 }
我尝试了一个下拉选择:
<%= f.select :fulfillment_status, options_for_select(@order.fulfillment_status.map {|k, v| [k.humanize.capitalize, v]}) %>
错误:“处理”的未定义方法“映射”:字符串
试过了:
<%= f.select :fulfillment_status, options_for_select(@order.fulfillment_statuses.map {|k, v| [k.humanize.capitalize, v]}) %>
<%= f.select(:fulfillment_status, @order.fulfillment_statuses.keys.map {|fs| [fs.titleize,fs]}) %>
错误:未定义的方法 `fulfillment_statuses' 用于#
试过了:
<%= f.select :fulfillment_status, options_for_select(@order.fulfillment_statuses) %>
错误:
未定义的方法 `fulfillment_statuses' 用于#
这很奇怪,因为在控制台中执行=
Order.fulfillment_statuses
将产生所有枚举值。 我阅读的每一种方式都与我上面尝试的方式相同
【问题讨论】:
-
<%= f.select :fulfillment_status, options_for_select(Order.fulfillment_statuses.map { |label, int| [label.humanize.capitalize, int] }) %>返回什么?
标签: ruby-on-rails ruby enums