Ruby on 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,那么将其存储为布尔值可能更有意义。您可

可以在Rails中创建这样的枚举吗

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

谢谢,老兄,我没有做任何与此相关的事情。无论如何,谢谢你的建议!