Как найти бронирование без удостоверения личности - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь уничтожить столбец моей таблицы бронирования.

У меня есть индекс таблицы соединения в courses_controller.rb, например:

@bookings = Booking.joins(:schedule).where(user_id: current_user.id).where("schedules.status_id = ?", 11).page(params[:page]).per(5)

и в представлении:

         <% @bookings.each.with_index(1) do |b, index| %>
            <tr>
              <th>
                <small><%= index %></small>
              </th>
              <td>
                <small><%= b.schedule.available.strftime("%b %e, %I:%M %p") %></small>
              </td>
              <td>
                <small></small>
              </td>
              <td>
                <small><%= b.schedule.tutor.name %></small>
              </td>
              <td>
                <span class="badge badge-pill badge-warning text-white text-capitalize">
                  <%= b.schedule.status.name %>
                </span>
              </td>
              <td>
                <%= link_to "Cancel request", users_bookings_path(b), method: :delete, data: {confirm: "Are you sure?"}, class: "btn btn-light btn-sm text-color-3 border" %>
              </td>
            </tr>
          <% end %>

В booking_controller.rb у меня есть способ уничтожить:

class Users::BookingsController < ApplicationUserController
before_action :find_request, only: :destroy

def destroy
 @request.destroy
 flash[:info] = "Success cancel request"
 redirect_to users_requested_classes_path
end

private
def booking_params
 params.permit(:user_id, :status_id, :schedule_id)
end

def find_request
 @request = Booking.find(params[:id])
end


end

и мои маршруты:

resource :bookings, only: :destroy

Это консольный журнал веб-сервера :

введите описание изображения здесь

Когда я нажимаю кнопку запроса на отмену, появляется сообщение «Не удалось найти бронирование без идентификатора». Почему?

1 Ответ

0 голосов
/ 11 марта 2020

Обратите внимание, что в ваших журналах запрашивается:

users/bookings.4

А в ваших параметрах ниже, что он показывает единственный параметр в качестве токена подлинности? Он также должен иметь идентификационный параметр. Причина в том, что вы используете неверный помощник пути в вашей форме.

<%= link_to "Cancel request", users_bookings_path(b), method: :delete, data: {confirm: "Are you sure?"}, class: "btn btn-light btn-sm text-color-3 border" %>

генерирует

users/bookings.4

, но если вы используете users_booking_path(b), например:

<%= link_to "Cancel request", users_booking_path(b), method: :delete, data: {confirm: "Are you sure?"}, class: "btn btn-light btn-sm text-color-3 border" %>

Он должен генерировать правильный путь как:

users/bookings/4
...