我想在我的模型上创建一个带有升序或降序符号的属性。但是,RoR不允许在数据库中使用枚举类型,因此我创建了一个布尔属性,然后在我的模型上添加了一个属性。这适用于除验证之外的所有内容,我似乎无法开始工作。 container.valid?
总是返回true,即使尚未设置order
。还有什么想法?
class Container < ActiveRecord::Base
attr_accessible :score_order
validates :order, :presence => true
def order
return order_ascends ? :ascending : :descending
end
def order=(order)
case order
when :ascending
self.order_ascends = true
when :descending
self.order_ascends = false
else
throw :unexpected_argument
end
end
end
答案 0 :(得分:1)
您想要验证order_ascends:
1: it is present
2: it is a boolean
订购方法正是您用来与order_ascends接口的方法。