Вы можете сделать что-то вроде:
resources :bookings do
member do
post :approve
end
end
Что даст вам (на rake routes
):
approve_booking POST /bookings/:id/approve(.:format) bookings#approve
bookings GET /bookings(.:format) bookings#index
POST /bookings(.:format) bookings#create
new_booking GET /bookings/new(.:format) bookings#new
edit_booking GET /bookings/:id/edit(.:format) bookings#edit
booking GET /bookings/:id(.:format) bookings#show
PATCH /bookings/:id(.:format) bookings#update
PUT /bookings/:id(.:format) bookings#update
DELETE /bookings/:id(.:format) bookings#destroy
А затем выполните:
<td>
<%= link_to 'Approve', approve_booking_path(booking), class: "button-xs success", method: :post %>
</td>
Кстати, вы говорите, что у вас есть поле status
, но в методе вашего контроллера вы делаете:
@booking.update(state: "approved")
state
! = status
...