У меня есть модель платежа и имя контроллера payment_controller. Схема модели оплаты, как вRails обновляет стоимость акций продукта
class CreatePayments < ActiveRecord::Migration
def change
create_table :payments do |t|
t.belongs_to :user
t.decimal :ammount, :precision => 8, :scale => 2, null: false
t.decimal :balance, :precision => 8, :scale => 2, null: false
t.timestamps null: false
end
end
end
можно добавлять записи в базу данных, но то, что я хочу сделать, это каждый раз, когда пользователь добавляет платежи поле баланса должно обновляться с суммой предыдущего баланса и новой сумма , Я не знаю, как это сделать. пожалуйста помогите.
Я немного изменил код контроллера. Прежде чем я попытался обновить баланс в модели оплаты, но теперь я пытаюсь обновить баланс в модели пользователя. Все еще ошибка.
user = current_user
netamt = (amount.to_f - ((amount.to_f*2.9)/100 + 0.30))
payment = user.payments.create(:ammount => netamt)
user.update_attribute(balance: user.balance + netamt)
Это просто дополнение? В чем проблема, вы можете просто сделать «balance + = payment_amount» –
Все еще запутано. Предположим, что пользователь A имеет 60 долларов в качестве баланса в поле db. И если он добавит 30 долларов снова, то в поле суммы должно быть 30 долларов США, а поле баланса должно составлять 30 + 60 долларов США всего 90 долларов США. –
Да, вы можете сделать так: 'amount = new_amount', а затем' balance + = amount' –