我正在尝试使用Mongoid Enum并且正在努力解决问题。这是我的模特:
class Notification
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Enum
enum :status, [:new, :viewed]
...
end
当我尝试创建一个像这样的新对象时:
notification = Notification.create({ title: "Some title", content: "Some content" })
我在上面代码的行上得到wrong number of arguments (1 for 0)
。我不明白。我尝试时仍然收到错误:
notification = Notification.create({ title: "Some title", content: "Some content", status: :new })
OR
notification = Notification.create({ title: "Some title", content: "Some content", :status => :new })
OR
notification = Notification.create({ title: "Some title", content: "Some content", status: 'new' })
我可以创建对象的唯一方法是从模型中删除枚举。
我在这里缺少什么?
答案 0 :(得分:1)
如果您正在使用rails 5
和mongoid 6.1
,并且想使用mongoid-enum
,那么您肯定会度过艰难的一天。
我终于找到了解决这个问题的方法,您需要提一下
gem “mongoid-enum”, git: ‘git@github.com:boie0025/mongoid-enum’, branch: ‘nb/mongoid-6’
了解您的Gemfile。
答案 1 :(得分:0)
我遇到同样的问题:new是枚举的有效符号之一。当我改变时:new to:default,它开始工作。
答案 2 :(得分:0)
这是因为NEW是一个保留字,它不能像这样使用,但你可以使用像xxx_new这样的东西。
是的,我知道这篇文章是从一年前开始的,但也许它可以帮助其他人解决同样的问题。