0

我需要从我的视图中调用按钮单击的方法。以下是我认为的代码:

<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

当我单击按钮时,我需要从“列表”表中删除所有行(对于特定表号)并重定向到索引,这将再次从 @orders 中的列表表中获取行并将其传递给视图以进行填充。在路由文件中,我定义为:put "summary/done_order"

问题是它在点击时没有执行任何操作。我已经尝试了许多使用 button_to 和 link_to 的建议方法,但每次登陆时都会出现一些错误。如果没有错误,则不执行任何操作。我相信我的理解存在一些缺陷来实现这一点,我在尝试替代方法时遗漏了一些东西。请指教。谢谢。

4

1 回答 1

0

您应该为此设置一条路线:

# routes
resources summaries do
  put :done_order, on: :member
end

这应该允许编写如下内容:

= link_to "Done", done_order_summaries_path(@summary), method: :put

我不确定你为你的对象命名了什么,但你似乎没有遵循惯例。所以这部分取决于你,但这是基本机制。另一个注意事项是您在按钮标签内放置了一个链接。我不确定这是否有效。你没有必要这样做。只需将您的链接设置为看起来像一个按钮或使用一个按钮,甚至是一个带有表单的按钮。

于 2013-08-29T14:41:11.630 回答