我正在开发一个应用程序,我需要在单击视图中的按钮时将行从一个表保存到另一个表。在按下按钮时,我最初是根据按钮单击传递的字段从一个表中获取行。获取行后,我将它们插入到另一个表中,然后从第一个表中删除行。下面是视图中的代码
<div class ="sbutton">
<%= button_to "Print", { :controller => "billings", :action => "printorder", :id => @orders.first.tableno}, :method => :delete %>
</div>
下面是 billings 控制器中的 printorder 方法:
def printorder
lists = List.select.where(:tablabel => "Table"+params[:id]).to_a
lists.each do |list|
order = Order.new(
:orderno => list.orderno,
:tableno => list.tableno,
:itemname => list.itmename,
:quantity => list.quantity,
:amount => list.amount,
)
order.save
end
lists.delete_all
Table.where(:tablabel => "Table"+params[:id]).update_all(:tabstatus => "available")
end
在上述方法中,我从表中获取行并使用为特定表号获取的行lists
更新表。orders
表号是从视图中传递的,我将其捕获在params[:id]
. 路由文件具有此方法的以下代码
resources :billings do
delete :printorder, on: :member
end
问题是我tried to create Proc object without a block
在 line 进入 billings 控制器的 printorder 方法lists = List.select.where(:tablabel => "Table"+params[:id]).to_a
。
我为此错误进行了很多搜索,但无法理解根本原因或得到解决方案。请指教。谢谢。