Предотвратить NULL для активной записи INSERT? - PullRequest
3 голосов
/ 18 октября 2011

У меня есть представление базы данных с вычисляемым столбцом, которое я использую для поддержки модели Rails. Оператор INSERT INTO, сгенерированный model.create, пытается установить для этого столбца значение NULL, в результате чего база данных будет жаловаться, а запись не будет создана. Я знаю: attr_readonly может использоваться для того, чтобы столбец не был указан в UPDATE, но есть ли способ сообщить ActiveRecord, что он также не должен указывать его для INSERT?

1 Ответ

2 голосов
/ 18 октября 2011

Вы могли бы: Удалите атрибут вручную из объекта перед его созданием.

  before_create(:remove_attribute)

  private

  def remove_attribute
    @attributes.delete('unwanted_attribute')
  end

Помните, что это полностью удаляет атрибут из текущего объект. Если вам нужно получить доступ к удаленному атрибуту после создал запись, запись должна быть перезагружена.

...