Я хочу, чтобы вычислить total_price
в medic_record
Sum атрибутов модели в рельсах
total_price = med_show + lab_price + total_room
schema.rb
create_table "medic_records", force: :cascade do |t|
t.decimal "lab_price"
t.decimal "med_show"
t.decimal "total_price"
t.decimal "total_room"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Мой метод в medic_record модели
before_save :save_total
def save_total
self.update_all(total_price: self.med_show + self.lab_price + self.total_room)
end
Но я получил эту ошибку:
TypeError (nil can't be coerced into BigDecimal): app/models/medic_record.rb:31:in '+' app/models/medic_record.rb:31:in 'save_total'
Как это исправить?
Пожалуйста, разместите свое изменение как ответ. Я бы посоветовал не вводить столбцы, как 'total_price' в вашей базе данных. – Alik
Увы, извините. Я двигаю своим ответом :) – Sakti