Есть ли простой способ (т.е. конфигурация), чтобы заставить ActiveRecord сохранять пустые строки как NULL в БД (если разрешен столбец)?
Причиной этого является то, что если в базе данных нет столбца строки NULLable без значения по умолчанию, новые записи, которые не устанавливают это значение, будут содержать NULL, тогда как новые записи, которые устанавливают это значение в пустую строку, не будут NULL, что приводит к несоответствиям в базе данных, которые я бы хотел избежать.
Сейчас я делаю такие вещи в своих моделях:
before_save :set_nil
def set_nil
[:foo, :bar].each do |att|
self[att] = nil if self[att].blank?
end
end
который работает, но не очень эффективен или сух. Я мог бы включить это в метод и смешать его с ActiveRecord, но прежде чем я спустился по этому маршруту, я хотел бы знать, есть ли способ сделать это уже.