我的Box模型中有一个枚举
enum box_type: [:wooden, :plastic, :metal, :paper]
我希望我的Box模型的box_type
属性只是其中之一,所以:
validates :box_type, inclusion: {in: box_types.keys }
它似乎应该完美无缺,但在创建我的Box模型时我也有一个默认值,设置如下:
class CreateBoxes < ActiveRecord::Migration[5.0]
def change
create_table :boxes do |t|
...
t.string :box_type, null: false, default: "paper"
...
t.timestamps
end
end
end
当我尝试在我的控制台中创建记录时,我得到回滚。 错误:
@messages={:box_type=>["is not included in the list"]}, @details={:box_type=>[{:error=>:inclusion, :value=>nil}]}
问题:
答案 0 :(得分:1)
enum
在数据库中存储整数,而不是字符串。尝试将列类型更改为整数,默认为0
声明一个枚举属性,其中值映射到的整数 数据库,但可以按名称查询。