2016-11-10 87 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