你已经很接近了:) 错误的修复是正确的。
您的选择正在呼叫
Preference.self_governance.to_a.map { |p| [p.humanize, p] }
你的错误告诉你复数是错误的。请记住,如果您对单个对象调用 enum,它将是
@preference.self_governance
但是,如果您调用模型本身、Preference,并请求一个集合,那么它就是复数。
Preference.self_governances
Because enum
很特殊,你的枚举可以只是数组,而不是哈希:
enum self_governance: [ tier_1, tier_2, tier_3, tier_4, tier_55 ]
enum autonomy: [ tier_11, tier_21, tier_31, tier_41, tier_51 ]
您的视图将如下所示:
<%= f.input :self_governance, as: :select, label: "Select your governance approach", collection: Preference.self_governances.map { |key, value| [key.humanize, key] } %>
它将存储数组的索引号,就像魔术一样:)