2013-03-09 60 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