https://github.com/rmm5t/strip_attributes#examples

ли простой способ (то есть конфигурация) заставить ActiveRecord сохранять пустые строки как NULL в БД (если позволяет столбец)?

Причина этого заключается в том, что если в БД имеется столбец NULLable string без значения по умолчанию, новые записи, которые не устанавливают это значение, будут содержать NULL, тогда как новые записи, которые устанавливают это значение в пустую строку, не будут равны NULL, что приведет к к несоответствиям в базе данных, которых я хотел бы избежать.

Прямо сейчас я делаю такие вещи в моих моделях:

before_save :set_nil

def set_nil
  [:foo, :bar].each do |att|
    self[att] = nil if self[att].blank?
  end
end

который работает, но не очень эффективный или сухой. Я мог бы включить это в метод и смешать его с ActiveRecord, но прежде чем идти по этому пути, я хотел бы знать, есть ли способ сделать это уже.

Ответы на вопрос(7)

Ваш ответ на вопрос