我希望在我的餐厅应用程序中改变"准备好的状态"到了#34;已经交付了#34;有一个复选框列表,但在重新加载视图时它没有做任何更改,从逻辑上来说查询很好,我不明白哪个是问题。
View of the application
Orderdish.rb
class Orderdish < ApplicationRecord
belongs_to :order
belongs_to :dish
def self.orders_waiter waiter
orders_waiter=Orderdish.all.joins({:order => :table},:dish).select("orderdishes.*,orderdishes.state as status,orderdishes.id as id, dishes.*, dishes.speciality_id as speciality_id, tables.*, orders.*, orders.created_at as order_created, tables.*, tables.waiter_id as waiter_id").where("waiter_id = ?", waiter.id).where("orderdishes.state = ?", "preparated").order("order_created ASC")
return orders_waiter
end
end
控制器
def orderWaiter
@ordersWaiter = Orderdish.orders_waiter current_waiter
@ordersWaiter = @ordersWaiter.paginate(:page => 1, :per_page => 12)
end
def deliverated
puts Orderdish.where(id: params[:orderdishes_ids]).update_all state: "deliverated"
redirect_to :orderWaiter
end
路线
resources :order_views do
collection do
put :preparated
put :deliverated
end
end
get 'orderWaiter' => 'order_views#orderWaiter'
查看
<div class="aboutUs">
<%= form_tag deliverated_order_views_path, method: :put do %>
<table class="table table-inverse">
<thead>
<tr>
<th> </th>
<th>Created </th>
<th>Table </th>
<th>Name</th>
<th>Specification</th>
<th>Quantity</th>
<th>State</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @ordersWaiter.each do |orderwaiter| %>
<tr>
<td><%= check_box_tag "orderdishes_ids[]", orderwaiter.id %></td>
<td><%= orderwaiter.order_created.to_time.strftime('%B %e at %l:%M %p') %></td>
<td><%= orderwaiter.number %></td>
<td><%= orderwaiter.name %></td>
<td><%= orderwaiter.specification %></td>
<td><%= orderwaiter.quantity %></td>
<td><%= orderwaiter.status %></td>
</tr>
<% end %>
</tbody>
</table>
<%= submit_tag "Deliverated" %>
</div>
<% end %>