2016-11-10 17 views
0

我有一個方法,我想從控制器運行,這應該通過單擊按鈕來完成,我遇到的問題是,當我點擊特定的行或項時我重定向到該項目的視圖。調用方法沒有打開顯示視圖 - Rails

這裏是我所創建的路線: patch '/withdraw/:id', to: 'payments#withdraw', as: :withdraw

這是的link_to行: <%= link_to 'Withdraw', withdraw_path(pay), method: :post %>

這是方法,這實際上是更新現有的屬性:

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

爲了獲得理想的效果,我需要改變什麼?任何援助將不勝感激。

回答

0

remote: true添加到鏈接。

<%= link_to 'Withdraw', withdraw_path(pay), method: :patch, remote: true %> 

,並在行動的末尾添加head :ok

def withdraw 
    .. 
    head :ok 
end 
+0

我需要修改我的路線,因爲我收到以下錯誤:'的ActionController :: RoutingError(無路由匹配[POST] 「/撤消/ 3」)' –

+0

感謝您的迴應,當我點擊withraw'link_to',我得到一個無休止的/非終止循環試圖檢索指定的記錄:'CACHE(0.0ms)SELECT「payments」 。* FROM「payments」WHERE「payments」。「id」= $ 1 LIMIT $ 2 [[「id」,1],[「LIMIT」,1]] –

+0

@MorezSA這是因爲您在初始'提取代碼。可能你想要'@payment.amount_interest = @ payment.withdraw.amount * 1.1'。現在有無盡的和無意義的循環 – MikDiet

相關問題