Rails播种枚举属性

时间:2015-10-21 01:54:43

标签: ruby-on-rails ruby enums seed

所以我有一个模型Post,它在模型中声明了枚举,如下所示:

class Post < ActiveRecord::Base
  enum draft_status: [:draft,:published]

我正在使用Rails 4,除了我的seeds.rb文件外,它在任何地方都可以正常工作。

post =Post.create!(user: user, content: "lorem ipsum", draft_status: 1)

每当我运行db:seed时,我都会遇到同样的错误:

  

ActiveModel :: MissingAttributeError:无法写入未知属性   draft_status

我甚至试过这样做:

post =Post.create!(user: user, content: "lorem ipsum", draft_status: 1)
post.published!

我仍然得到同样的错误。迁移存在,我可以在架构中看到该属性。此外,我的控制台中@post.draft_status的所有呼叫都有效并且呼叫@post.published!也有效。为什么我不能在这个枚举属性中播种?

更新: 因此,如果我运行rake db:setup,它将播种我的整数值。我的理解是rake db:setup和rake db:seed之间的区别在于rake db:setup只创建数据库db:create,加载模式db:schema:load然后定期db:seed

0 个答案:

没有答案