Установка значений по умолчанию для модели при использовании представлений базы данных рельсов - Scenic gem

Модель Contact имеет значения по умолчанию для столбца is_pickup.

      Contact.new
=> id: 2, email: nil, order_id: nil, is_pickup: true

Теперь я подключаю контактную таблицу к представлениям rails db, используя сценический драгоценный камень.

      class OrderContact < ApplicationRecord
      self.table_name = 'temp_contacts'
      self.primary_key = :id
    ...
end

Проблема в том, что я не могу установить значения по умолчанию для записи.

я попытался добавить следующее в модель контакта

      def is_pickup
  self[:is_pickup] || true
end

Но все же он не отображается в консоли рельсов

      Contact.new
    => id: 2, email: nil, order_id: nil, is_pickup: nil

Мне нужно установить значение по умолчанию при инициализации записи.

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

1 ответ

вы можете указать значение по умолчанию в миграции

      change_column_default :contacts, :is_pickup, true

или вы можете добавить обратный вызов в свою модель

      class Contact < ActiveRecord::Base
    after_initialize :init

    def init
      self.is_pickup ||= true
    end
  end    
Другие вопросы по тегам