Как отформатировать этот запрос PostgreSQL, чтобы иметь возможность работать с db: migrate - PullRequest
3 голосов
/ 30 марта 2020

Я хочу создать следующую таблицу. Я сделал это, запустив SQL из ActiveRecord, используя

alter table items add column sumup numeric generated always as ( quantity * price + (quantity * price* fpa/100) ) stored;

Это правильный способ сделать это?

  def change
    create_table :items do |t|
      t.string :itemName
      t.string :prom
      t.string :promCode
      t.string :baseCode
      t.string :desc
      t.numeric :fpa
      t.numeric :price
      t.integer :quantity
      t.string :monadaMe
      t.string :familys

      t.timestamps
    end
    ActiveRecord::Base.connection.execute(" alter table items add column sumup numeric generated always as ( quantity * price + (quantity * price* fpa/100) ) stored;")
  end
end

1 Ответ

1 голос
/ 30 марта 2020

Создайте только новый столбец:

rails generate migration AddSumupToItems sumup:float

В вашем model добавьте:

before_save :calculate_sumup

def calculate_sumup
  sumup = ( quantity * price + (quantity * price* fpa/100) )
  self.sumup = sumup
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...