rails更新与复选框

时间:2017-10-26 14:52:17

标签: ruby-on-rails sql-update checkboxlist

我希望在我的餐厅应用程序中改变"准备好的状态"到了#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 %>

0 个答案:

没有答案