我需要在我的视图中有一个按钮,单击它应该从我的数据库表中删除项目并使用更新的数据库内容刷新视图。下面是我的 index.html.erb 文件中的代码
<div id="table-record">
<div class="table-order-detail" id="position1">
<div class="table-inner-border">
<% if @orders%>
<div class="bottom-border1"><%= "Table"+@orders.first.tableno %>
</div>
<div class="bottom-border1">
<div class="item-name">Item</div> <div class="qty">Qty</div>
</div>
<% @orders.each do |order| %>
<% if (order.itmstatus == "displayed") %>
<div class="item-name"><%= order.itemname %></div>
<div class="qty"><%= order.quantity %></div>
<% else %>
<div class="new-item-name"><%= order.itemname %></div>
<div class="qty"><%= order.quantity %></div>
<% end %>
<% end %>
<% end %>
<% button_to "Done", {:action => "doneorder", :id => @orders.first.tableno, :controller => "kitchens"}, :method => :delete %>
</div></div>
@orders.first.tableno 是我需要从我的数据库表中删除行的键(不确定我是否需要在 id 字段中传递它,但我在其中一个相关帖子中找到了这种语法)
下面是我的控制器(厨房)中的代码。控制器最初只定义了索引方法。现在我添加了另一个方法 doneorder,我需要在单击按钮时调用它。
def doneorder
List.where(:tableno => params[:id])).delete_all
redirect_to :action => :index
end
在上述方法中,我需要删除与从按钮单击传递的 id 对应的行,然后重定向到索引操作。索引操作将从列表表中获取更新的行并显示更新的内容。
我完全是 Rails 的初学者,我已经尝试了很多来自相关帖子的东西,包括 link_to,但似乎没有任何效果。使用上面的代码,我得到以下错误
No route matches {:action=>"doneoreder", :id=>"01", :controller=>"kitchens"}
在我的路线文件中,我给出了
resources :kitchens do
put :done_order, on: :member
end
请帮忙。谢谢。