我需要在我的视图中点击Button上的方法。以下是我视图中的代码:
<button type="submit" id="1"><%link_to "Done", {:controller => :summary, :action => :done_order}, {:method => :put }%></button>
单击此按钮,我必须从表中删除一行并使用更新的内容更新视图。下面是我的控制器中的done_order方法
def done_order
List.where(:tableno => @orders.first.tableno).delete_all
redirect_to :action => :index
end
当我点击按钮时,我需要从'lists'表中删除所有行(对于特定的表号)并重定向到index,这将再次从@orders中的lists表中获取行并将其传递给view进行填充。
在路由文件中,我将其定义为:put "summary/done_order"
问题是它在点击时没有执行任何操作。我用button_to&amp;尝试了许多建议的方法。 link_to但每次登陆都有一些错误。如果没有错误则没有执行任何操作。 我相信我的理解中存在一些缺点,以实现这一点,我在尝试其他方式时遗漏了一些东西。请指教。感谢。
答案 0 :(得分:0)
您应该为此设置路线:
# routes
resources summaries do
put :done_order, on: :member
end
这应该允许写这样的东西:
= link_to "Done", done_order_summaries_path(@summary), method: :put
我不确定你的对象命名是什么,但似乎你没有遵循惯例。所以这部分取决于你,但那是基本机制。另一个注意事项是你在按钮标签内放了一个链接。我不确定这是否有效。你没有必要这样做。只需将链接设置为按钮,或者使用按钮,或者使用带有表单的按钮。