Ruby on rails Rails枚举:公共和私有
可以在Rails中创建这样的枚举吗Ruby on rails Rails枚举:公共和私有,ruby-on-rails,ruby,Ruby On Rails,Ruby,可以在Rails中创建这样的枚举吗 enum status: [:public, :private] 原因:抛出一个错误,表示将为此枚举创建一个公共方法,这是有意义的,因此我将有如下内容: object.public! 例如。不幸的是,ActiveRecord不允许您使用public或private(或new等)定义枚举,因为它们是保留的方法名称。已经有报道说会发生这种情况,但它们已经关闭,因为无法修复 如果您的状态枚举只是public或private,那么将其存储为布尔值可能更有意义。您可
enum status: [:public, :private]
原因:抛出一个错误,表示将为此枚举创建一个公共方法,这是有意义的,因此我将有如下内容:
object.public!
例如。不幸的是,ActiveRecord不允许您使用
public
或private
(或new
等)定义枚举,因为它们是保留的方法名称。已经有报道说会发生这种情况,但它们已经关闭,因为无法修复
如果您的状态枚举只是public
或private
,那么将其存储为布尔值可能更有意义。您可以创建两个方法,将它们当作枚举来执行您想要的操作。在您的模型中:
def public!
self.public = true
end
def private!
self.public = false
end
如果创建布尔列以设置默认值,请不要忘记:
add_column :people, :public, :boolean, default: false
谢谢,老兄,我没有做任何与此相关的事情。无论如何,谢谢你的建议!