rails formtastic - 整数字段,枚举为下拉列表 - "0"无效

use*_*989 6 enums ruby-on-rails

我有一个整数字段'fieldname'.

枚举掉落:['a','b']

f.input :fieldname, as: select, collection: Model.drops
Run Code Online (Sandbox Code Playgroud)

选择并提交后,我收到错误'0'不是有效的字段名.

目前通过使用枚举为整数字段编写setter使其工作如下:

def fieldname=(value)
    self[:fieldname] = value.to_i
end
Run Code Online (Sandbox Code Playgroud)

你能告诉我正确的方法吗?我不认为写这个setter方法是一个好方法.

小智 19

添加.keys到集合定义:

f.input :fieldname, as: select, collection: Model.drops.keys
Run Code Online (Sandbox Code Playgroud)

这样,选项的值将与文本相同,并且在保存ActiveRecord时将其转换为整数.