Проверка Rails атрибута, являющегося экземпляром определенного класса - PullRequest
1 голос
/ 15 февраля 2012

Есть ли способ сделать это без использования пользовательских валидаторов?

Ответы [ 3 ]

0 голосов
/ 21 февраля 2012

В соответствии с запросом OP, вот короткий обмен комментариями под первоначальным вопросом:

Я не думаю, что для этого есть встроенная проверка.Почему вы не хотите использовать пользовательские проверки?- MrDanA 15 февраля в 17:05

Не то, чтобы я не хотел их использовать, но я подумал, что это достаточно распространенная ситуация, чтобы гарантировать встроенную проверку, поэтому я хотел убедиться в этом.Кстати, опубликуйте это как ответ, и я приму это на тот случай, если кому-то еще будет интересно - agente_secreto 20 часов назад

0 голосов
/ 25 июля 2013

Это довольно старый вопрос, но мне нужно было сделать что-то подобное, и я решил поделиться своим решением на тот случай, если кому-то еще понадобится что-то подобное в будущем.

Мне нужно было проверить, был ли указанный атрибут 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

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 15 февраля 2012

Я не знаю, правильно ли я понимаю это, но я думаю, что метод .class принесет его.

Поскольку все в Ruby является объектом, его легко использовать.

Например:

"Test".class 
=> String
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...