У меня есть приложение Rails 4.0 с моделью "заказ", в которой есть поле статуса. При вызове действия «показать» для получения сведений об объекте «заказ» я хочу добавить дополнительные кнопки на «Показать страницу» в дополнение к «Редактировать» и «Назад». Первая, чтобы отметить «обновить статус», который обновит статус этого объекта заказа только до «1», а вторая кнопка, чтобы отметить «закрыть заказ», который будет обновлять статус этого объекта заказа только до 2. Как я могу добиться этого без «Редактировать» действие/представление? Нужно ли использовать form_tag для добавления этих кнопок и нужно ли писать 2 новых метода в OrdersController для обновления статуса?
Ниже приведен мой show.html.erb с двумя кнопками, которые я хочу добавить...
<p>
<strong>Name:</strong>
<%= @order.name %>
</p>
<p>
<strong>Status:</strong>
<%= @order.status %>
</p>
<%= link_to 'Edit', edit_order_path(@order) %> |
<%= link_to 'Back', orders_path %> |
<%= link_to 'Shipped', '#', :name => 'shipped_button' %> |
<%= link_to 'Close', '#', :name => 'close_button' %>
Если я нажму кнопку «Отправлено» или «Закрыть», они оба будут вызваны в «OrdersController» как запрос «GET», как показано ниже,
.. Запущен GET "/orders/1?name=shipped_button" для 127.0.0.1 21.11.2014 15:40:38 -0800
Обработка с помощью OrdersController#show as HTML
Параметры: {"name" =>"shipped_button", "id"=>"1" Загрузка заказа (0,1 мс) ВЫБЕРИТЕ "заказы".* ИЗ "заказов" ГДЕ "заказы"."id" = ? LIMIT 1 [["id", 1]]
Обработанные заказы/show.html.erb в макетах/приложении (1,9 мс)
Выполнено 200 OK за 50 мс (Просмотры: 47,8 мс | ActiveRecord: 0,1 мс)
Как я могу обновить модель с соответствующим обновлением поля статуса. «статус» — целочисленное поле в модели «заказы».