これを行う方法を理解しようとして途方もなく苦労しています。私は文字通り一日中それに取り組んできました。
Account クラスと Transaction クラスがあります。アカウントは残高で作成され、そのタイプに応じて、トランザクション金額を残高に加算または減算する必要があります。
トランザクションが作成されるたびにアカウントの残高を更新できるようにしたいと考えています。これは、個人金融アプリケーション用です。今のところ、新しいトランザクションを作成しても、アカウントの残高には何も起こりません。
accounts_controller.rb
class AccountsController < ApplicationController
def index
@accounts = Account.all
end
def show
@account = Account.find(params[:id])
end
def new
@account = Account.new
end
def edit
@account = Account.find(params[:id])
end
def create
@account = Account.new(params[:account])
respond_to do |format|
if @account.save
format.html { redirect_to @account, notice: 'Account was successfully created.' }
format.json { render json: @account, status: :created, location: @account }
else
format.html { render action: "new" }
format.json { render json: @account.errors, status: :unprocessable_entity }
end
end
end
def update
@account = Account.find(params[:id])
respond_to do |format|
if @account.update_attributes(params[:account])
format.html { redirect_to @account, notice: 'Account was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @account.errors, status: :unprocessable_entity }
end
end
end
# DELETE /accounts/1
# DELETE /accounts/1.json
def destroy
@account = Account.find(params[:id])
@account.destroy
respond_to do |format|
format.html { redirect_to accounts_url }
format.json { head :no_content }
end
end
def update_balance
@a = Account.find(params[:id])
@a.transactions.each do |t|
@update_balance = t.t_type + @a.balance
@a.update_attributes(:balance => @update_balance)
end
end
end
transactions_controller.rb
class TransactionsController < ApplicationController
def create
@account = Account.find(params[:account_id])
@transaction = @account.transactions.create(params[:transaction])
redirect_to account_path(@account)
end
end
トランザクション.rb
class Transaction < ActiveRecord::Base
belongs_to :account
attr_accessible :amount, :category, :t_type
end
account.rb
class Account < ActiveRecord::Base
attr_accessible :balance, :name
has_many :transactions
end
誰かが私が間違っていることを知っているか、完全な説明の方向に私を向けることができれば、それは素晴らしいことです. この時点で私はとても迷っています。