2016-11-11 55 views
0

我想實現一種單擊按鈕並運行方法而不必切換到id找到的指定項目/對象視圖的方法。我正在使用PostgrSQL。非終止/非終止數據庫查詢 - Rails

在我PaymentsController我有一個叫撤退方法,它看起來是這樣的:

def withdraw 
@payment = Payment.find(params[:id]) 
@payment.withdrawn = true 
@payment.amount_interest = withdraw.amount * 1.1 
@payment.save 
head :ok 
end 

和路徑:用的link_to

patch '/withdraw/:id', to: 'payments#withdraw', as: :withdraw 

每個語句:

<% @payments.each do |withdraw| %> 
<tr> 
    <td><%= withdraw.amount %></td> 
    <td><%= link_to 'Withdraw', withdraw_path(withdraw), method: :patch, remote: true %></td> 
</tr> 
<% end %> 

編輯:點擊「Withdraw」後,我得到一個une nding數據庫查詢,看起來像這樣:

Started PATCH "/withdraw/1" for 127.0.0.1 at 2016-11-11 21:20:34 +0200 
Processing by PaymentsController#withdraw as JS 
Parameters: {"id"=>"1"} 
Started PATCH "/withdraw/1" for 127.0.0.1 at 2016-11-11 21:20:34 +0200 
Processing by PaymentsController#withdraw as JS 
Member Load (40.0ms) SELECT "members".* FROM "members" WHERE "members"."id" = $1 ORDER BY "members"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]] 
Parameters: {"id"=>"1"} 
Member Load (1.4ms) SELECT "members".* FROM "members" WHERE "members"."id" = $1 ORDER BY "members"."id" ASC LIMIT $2 [["id", 1], ["LIMIT", 1]] 
Payment Load (0.0ms) SELECT "payments".* FROM "payments" WHERE "payments"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]] 
Payment Load (2.0ms) SELECT "payments".* FROM "payments" WHERE "payments"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]] 
Payment Load (1.1ms) SELECT "payments".* FROM "payments" WHERE "payments"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]] 
Payment Load (0.0ms) SELECT "payments".* FROM "payments" WHERE "payments"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]] 

我的付款模式有以下幾點:

account:string amount:decimal paid:boolean withdrawn:boolean amount_interest:decimal 

belongs_to :member 

任何援助將不勝感激。

+0

ü可以添加完整的請求日誌,也就是在請求開始無限期打印這條線還可以共享的src部分你的'付款'模型 – dexter

+0

@dexter我已經添加了額外的信息 –

+0

不知道'head:ok'確實是什麼,但它是唯一突破 – SomeSchmo

回答

0

這個問題是我退出方法中的一個錯誤。

改變:

@payment.amount_interest = withdraw.amount * 1.1 

到:

@payment.amount_interest = @payment.amount * 1.1