我是一名 C# 程序员,我正在研究 ruby on Rails。但我可能在心态或其他方面遇到了一些麻烦。
我有一个投票对象,该对象可以是赞成、中立或反对。
我通常会让投票对象有一个像这样的字段
private VoteEnum voteEnum = VoteEnum.Neutral
我到底怎样才能在红宝石中实现这一目标。
我发现了一些例子,例如:
def MyClass < ActiveRecord::Base
ACTIVE_STATUS = "active"
INACTIVE_STATUS = "inactive"
PENDING_STATUS = "pending"
end
然后,当使用另一个类的模型时,我引用常量
@model.status = MyClass::ACTIVE_STATUS
@model.save
这对我来说似乎是正确的,但我的主要问题是如何告诉模型状态是枚举或包含的类型。
我希望你能理解我的问题,并希望你能帮助我理清这个问题。
Ruby 不像 C# 那样是严格类型的。但您可以使用验证来检查状态中的内容:
def MyClass < ActiveRecord::Base
ACTIVE_STATUS = "active"
INACTIVE_STATUS = "inactive"
PENDING_STATUS = "pending"
NUMERICAL_STATUS = 500 # this is weird but okay
ALL_STATUSES = [ACTIVE_STATUS, INACTIVE_STATUS, PENDING_STATUS, NUMERICAL_STATUS]
validates_inclusion_of :status, :in => ALL_STATUSES
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)