При выполнении пользовательской проверки, прежде чем создается запись?

Я хочу выполнить пользовательскую проверку, прежде чем запись будет создана?

Выглядит, как будто это - правильный метод: before_validation_on_create. Например:

before_validation_on_create :custom_validation

Но не уверено. Любая справка ценилась бы.

15
задан keruilin 19 June 2010 в 23:11
поделиться

2 ответа

Перехватчики before_validation_on_create происходят до проверки при создании… но сами по себе они не являются проверками.

Что вы, вероятно, захотите сделать, так это использовать validate и частный метод, который добавляет к массиву ошибок. вот так:

class IceCreamCone

  validate :ensure_ice_cream_is_not_melted, :before => :create

  private
    def ensure_ice_cream_is_not_melted
      if ice_cream.melted?
        errors.add(:ice_cream, 'is melted.')
      end
    end
  end
19
ответ дан 1 December 2019 в 00:02
поделиться

Здесь есть отличный ресурс с информацией об обратных вызовах и порядке их выполнения:

http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html

2
ответ дан 1 December 2019 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: