Как добавить одобрить заявки на бронирование в Rails? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть ресурсы бронирования.Чтобы одобрить бронирование, я добавил в свой BookingsController метод Approve :

def approve
@booking = Booking.find_by_id(params[:id])
 @booking.update(state: "approved")
 if @booking.state == "approved"
   flash[:success] = "Booking successfully approved"
   redirect_to bookings_path
 else
   flash[:error] = "Booking not approved"
   redirect_to bookings_path
 end

end

Чтобы подтвердить бронирование, я использовал ссылку:

<td><%= link_to 'Approve', bookings_approve(id: booking.id), class: "button-xs success" %></td>

Я не уверен насчет ссылки для утверждения и определения соответствующего маршрута.Как я определяю маршруты и ссылку на aprrove?

Каждое бронирование имеет поле состояния, которое я хочу изменить на «утверждено» при нажатии кнопки «Подтвердить».Заранее спасибо!

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете сделать что-то вроде:

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 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...