2011-12-12 123 views
0

我想在我的模型上創建一個屬性,用於升序或降序的符號。但是,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 

回答

1

要驗證order_ascends:

1: it is present 
2: it is a boolean 

順序的方法是你正在使用的接口,以order_ascends什麼。

+0

嗯,這有道理,但「有效?」仍然是真實的。 – LandonSchropp

+0

哎呀,我只是在愚蠢的看着錯誤的測試。謝謝您的幫助。 – LandonSchropp