2013-03-09 59 views
1

我有一個範圍字段,當向右滑動時,需要使輸出「更負面」達到-100。Rails range_field從0到-100

這裏是我當前的代碼:

<%= f.range_field :Question1, :in => 0..-100, :step => '.1' %> 

顯然,使用:在=> -100..0工作正常,但是當我切換到0 ..- 100,向右滑動上升到100,這顯然是錯誤的。我需要用戶能夠向右滑動才能獲得更多的負數。有誰知道如何做到這一點?

如果這是不可能的,是否有一種方法來設置:in => 0..100,然後在將數字放入數據庫之前使其成爲負數?

回答

1

我相信你可以在保存之前使用before_save過濾器否定值,或者在驗證之前使用before_validation否定它,然後你可以驗證你得到的數字是你想要的。

+0

這是一個很好的解決方案,但是,如果我將negate =>'true'傳遞到範圍字段,則只需要它就可以否定。那麼,在執行我的make_negative fxn之前,我會做一些類似self.negate =='true'的事嗎?我如何限制它只有一些實例? – dblarons 2013-03-09 18:15:04

+0

你可以'make_negative'檢查'self.negate' – linuxdan 2013-03-10 01:37:15