2012-02-15 13 views
0

有没有办法在不使用自定义验证器的情况下执行此操作?Rails验证作为特定类的实例的属性

+0

我不认为这是内置的验证。为什么你不想使用自定义验证? – MrDanA 2012-02-15 17:05:41

+0

这不是我不想使用它们,但我认为这是一个足够普遍的情况来保证内置的验证,所以我想确保它。顺便说一句,作为答案张贴这个,我会接受它,以防其他人想知道这 – 2012-02-20 17:29:36

回答

0

按OP的要求,这里是原来的问题上短下评论交流:

我不认为有一个内置的验证这一点。为什么你不想使用自定义验证? - MrDanA 2月15日17:05

这不是我不想使用它们,但我认为这是一个常见的情况,以保证内置验证,所以我想确保它。顺便说一句,这张贴作为答案,我会接受它,以防其他人想知道这一点 - agente_secreto 20小时前

0

我不知道我是否理解这个权利,但我认为方法.class会带来它。

由于Ruby中的所有东西都是一个对象,所以很容易使用。

例如:

"Test".class 
=> String 
+0

类似:“Test”.is_a?(String) – miked 2012-02-15 17:24:06

0

这是一个很老的问题,但我需要做这样的事情,并想出我会分享我的解决方案,以防其他人在未来需要做这样的事情。

我需要测试的是指定的属性是DateTime还是Time。这是在自定义类(而不是ActiveRecord)上。

我结束了与此:

class MyClass 

    attr_accessor :value 
    attr_reader :value_class 

    include ActiveModel::Validations 
    validates_inclusion_of :value_class, in: [DateTime, Time] 

    def value_class 
     @value.class 
    end 

end 

希望这有助于任何人。