2014-02-15 2 views
1

Предположим, у меня есть модель ActiveRecord с некоторыми валидациями.Оценка Rails 4 валидации на условиях

class Thing < ActiveRecord::Base 
    validates_presence_of :title 
    validates_uniqueness_of :slug 
end 

Я ищу способ поставить условия на ли или нет валидации оцениваются с созданием или обновлением объекта этой модели.

Будет что-то вроде этой работы?

#pseudocode 
class Thing < ActiveRecord::Base 
    if conditions 
     validates_presence_of :title 
     validates_uniqueness_of :slug 
    end 
end 

Есть ли наилучшая практика для этого? Или это все подходы faux pas?

+0

см. Пример электронной почты http://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates – devanand

ответ

1

Вы можете использовать имеющиеся Common Validation Options, если они удовлетворяют вашим условным требованиям. НО, если у вас есть какие-то конкретные условия, проверьте комплект Conditional Validation , указанный в руководствах ROR.

+0

Один пример, о котором я думал, когда задал вопрос, что я хотел бы обычно выполнять проверки, но пропустить некоторые проверки при работе в консоли rails. –

+0

Этот ответ помогает и полностью применяется, но каково ваше мнение на примере, который я дал для состояния окружающей среды? –

+0

'rails console' не является отдельной средой. Команда консоли позволяет вам взаимодействовать с вашим Rails-приложением из командной строки. На обратной стороне консоль rails использует IRB, поэтому, если вы когда-либо использовали ее, вы будете дома. Это полезно для тестирования быстрых идей с кодом и изменения серверных данных, не касаясь веб-сайта. –

Смежные вопросы