Ruby on rails 虚拟属性Rails模型

Ruby on rails 虚拟属性Rails模型,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想在我的模型上创建一个属性,该属性包含升序或降序符号。但是,RoR不允许在数据库中使用枚举类型,因此我创建了一个布尔属性,然后在模型上添加了一个属性。这对除验证之外的所有方面都非常有效,我似乎无法进行验证容器。有效吗?始终返回true,即使未设置顺序。有什么想法吗 class Container < ActiveRecord::Base attr_accessible :score_order validates :order, :presence => true d

我想在我的模型上创建一个属性,该属性包含升序或降序符号。但是,RoR不允许在数据库中使用枚举类型,因此我创建了一个布尔属性,然后在模型上添加了一个属性。这对除验证之外的所有方面都非常有效,我似乎无法进行验证<代码>容器。有效吗?始终返回true,即使未设置
顺序
。有什么想法吗

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
类容器true def订单 退货单上升?:升序:降序 结束 def order=(订单) 案件顺序 时间:上升 self.order_ascend=true 时间:下降 self.order_ascend=false 其他的 抛出:意外的_参数 结束 结束 结束
要验证订单升序:

1: it is present
2: it is a boolean

order方法正是你用来连接order_Ascend的方法。

Hmm,这很有意义,但是
有效吗?
仍然返回真值。哎呀,我只是太傻了,看错了测试。谢谢你的帮助。