2011-12-12 5 views
0

오름차순 또는 내림차순 기호를 사용하는 특성을 내 모델에서 만들고 싶습니다. 그러나 RoR은 데이터베이스에서 열거 형을 허용하지 않으므로 부울 속성을 만든 다음 내 모델에 특성을 추가했습니다. 이 기능은 유효성 검사를 제외한 모든 작업에 효과적이며 작동하지 않는 것으로 보입니다. container.valid?은 항상 order이 설정되지 않은 경우에도 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 

답변

1

당신은 order_ascends를 확인하려면 :

1: it is present 
2: it is a boolean 

주문 방법은 당신이 order_ascends에 인터페이스하는 데 사용하는 단지 것입니다.

+0

흠, 그 말이 맞지만 '유효합니까?'여전히 true를 반환합니다. – LandonSchropp

+0

와우, 나는 바보가되어 잘못된 테스트를보고있었습니다. 도와 주셔서 감사합니다. – LandonSchropp