Как я могу отключить проверку и обратные вызовы в направляющие STI полученная модель?

Превращайте строки в списки и работайте с ними. В конце снова включите списки в строки, используя join()

a = 'abc'
a = list(a)
print(a)
>>>['a', 'b', 'c']
a = ''.join(a)
print(a)
>>>'abc'
19
задан Orion Edwards 10 November 2008 в 23:44
поделиться

3 ответа

От ввода по абсолютному адресу вокруг в источнике (я в настоящее время нахожусь на направляющих 1.2.6), обратные вызовы относительно просты.

оказывается, что before_validation_on_create, before_save и т.д. методы, если не вызванный с какими-либо аргументами, возвратят массив, который содержит все текущие обратные вызовы, присвоенные тому 'сайту обратного вызова'

Для очистки before_save, можно просто сделать

before_save.clear

, и это, кажется, работает

3
ответ дан 30 November 2019 в 02:13
поделиться

Мне нравится использовать следующий шаблон:

class Parent < ActiveRecord::Base
  validate_uniqueness_of :column_name, :if => :validate_uniqueness_of_column_name?
  def validate_uniqueness_of_column_name?
    true
  end
end

class Child < Parent
  def validate_uniqueness_of_column_name?
    false
  end
end

Было бы хорошо, если бы направляющие предоставили skip_validation метод для обхождения этого, но этот шаблон работы и обрабатывает сложные взаимодействия хорошо.

45
ответ дан 30 November 2019 в 02:13
поделиться

Снова вводя по абсолютному адресу вокруг в источнике, кажется, что проверки могут быть выполнены или на каждом сохранении или обновляют/создают только. Это отображается на

:validate =>, все сохраняет
:validate_on_create => создания только
:validate_on_update => обновления только

Для очистки их, можно использовать write_inheritable_attribute, как это:

write_inheritable_attribute :validate, nil
0
ответ дан 30 November 2019 в 02:13
поделиться
Другие вопросы по тегам:

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