2015-04-23 30 views
-1

基本上我有一個表具有屬性:id,created_at,updated_at,user_id,電子郵件,借記卡,信用和acctbal。我使用Rails,並且在具有帳戶歷史記錄的頁面上添加資金按鈕。如果我存入50.00,它會在表格中正確添加一個新行,並將存款屬性中的50放入信用無效。但acctbal屬性也是空的,我不知道如何將當前的信用值添加到該表中的最後一行的acctbal值。我正在使用RoR。我將使用相同的技術來支付借記金額。我的創建方法是以下沒有acctbal計算,因爲我卡住了。如何添加從最後一行的屬性值與當前行的另一個屬性值

def create 
#@account = Account.new(account_params) 
# @account.save 
# respond_with(@account) 
@account = Account.new(account_params) 
@account.email = current_user.email 
@account.user_id = current_user.id 
respond_to do |format| 
    if @account.save 
    format.html { redirect_to accounts_url, notice: 'Thank you and enjoy.' } 
    format.json { render :show, status: :created, location: @account } 
    else 
    format.html { render :new } 
    format.json { render json: @account.errors, status::unprocessable_entity } 
    end 
end 
end 

任何人都可以請幫助我,手指流血嘗試一堆東西在網上找到的東西,但無濟於事。

+0

我不明白,你想顯示他們存款的金額來創建他們的帳戶?我想你會有創建行爲來創建該帳戶,但通過更新操作可以完成存款。請使用更多信息編輯您的問題。你的餐桌名稱和結構是什麼? – Beartech

+0

「accounts」表格行代表交易嗎?因此,如果我存入50美元,它會在'accounts'中創建一個新行,其中包含我的ID,$ 50和我目前的餘額?您需要一個'before_action'來查找使用我的id創建的最後一行,然後獲取該行的餘額並添加存款金額以獲得我的新餘額。 – Beartech

+0

是的帳戶表是更多的交易表。所以當創建新行時是否發生信用或借記,before_action查找前一行的acctbal屬性?我將如何將它變成一行代碼? <%acctbal.before_action(value) -/+ current.credit/debit(valueue)%>? – Edgar

回答

0

我想你是在得到的是這樣的:

def credit 
    @previous_balance = Account.where('user_id = ?', current_user.id).order(:created_at).last.acctbal 
    @account = Account.new(account_params) 
    @account.email = current_user.email 
    @account.user_id = current_user.id 
    @account.acctbal = account_params[:deposit] + @previous_balance 
    respond_to do |format| 
    if @account.save 
     format.html { redirect_to accounts_url, notice: 'Thank you and enjoy.' } 
     format.json { render :show, status: :created, location: @account } 
    else 
     format.html { render :new } 
     format.json { render json: @account.errors, status::unprocessable_entity } 
    end 
    end 
end 

正如我在評論說以上,你只是從他們的ID中的最後創建的行拉他們最後的平衡,並補充說,到存款。需要注意的兩件事: 1)如果這是你的做法,你不應該在表中連續排列update,或者你應該使用updated_at屬性代替。 2)您應該在created_at屬性上放置一個索引,以避免在表變大時阻止該屬性。

+0

我看到什麼會是更好的方法?基本上情況是用戶作爲一個賬戶,他們可以爲賬戶添加資金,當他們購買某項資產時,將從該賬戶中扣除。我的推理是創建行動方法作爲信用函數,併爲減法做一個借記行動方法... mayb我應該只是做一個信用行爲方法,並把代碼放在那裏,併爲管理員用戶添加留下create方法來添加一個需求應該出現時的信用卡/借記行? – Edgar

+0

這聽起來對我更好。我認爲你的實際信用和借記行動更好。但是你正處在正確的軌道上,你只需要代碼就可以從表中獲得以前的餘額。我其實很喜歡你的交易臺的想法,因爲它保留了每筆交易的時間順序記錄。 – Beartech

相關問題