0

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

但它仍然没有出现在 Rails 控制台中

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

初始化记录时,我需要设置默认值。

关于在使用数据库视图时如何为模型设置默认值的任何想法?

4

1 回答 1

0

您可以在迁移中指定默认值

change_column_default :contacts, :is_pickup, true

或者您可以在模型中添加回调

class Contact < ActiveRecord::Base
    after_initialize :init

    def init
      self.is_pickup ||= true
    end
  end    
于 2020-12-09T09:03:21.337 回答