Редактирование файла route.rb моего Rails 4, и я получаю неожиданное поведение (в любом случае, неожиданная форма - моя точка зрения).Rails routes.rb Неожиданное поведение
Я пытаюсь создать ссылку, которая обновляет запись о бронировании. Я создал действие в моем BookingsController с именем WITHDRAW, готовым обработать процесс обновления. Я хотел бы ссылку передать идентификатор заказа и мой код для ссылки это:
<%= link_to "Withdraw this booking", bookings_withdraw_path(@booking), :confirm => "Are you sure you want to withdraw this booking?", :method => :patch %>
Моя проблема возникает, когда я пытаюсь настроить маршрут для этой ссылки. Если добавить следующую строку в моих маршрутах файл:
match 'bookings/withdraw/:bid' => 'bookings#withdraw', via: 'patch'
тогда, когда я запускаю команду грабель, чтобы проверить маршруты он показывает это:
bookings_withdrawn GET /bookings/withdrawn(.:format) bookings#withdrawn
PATCH /bookings/withdraw/:bid(.:format) bookings#withdraw
Как вы можете видеть, ВЫВЕСТИ путем является частью (выше) (Кстати, между прочим). Если я удалю часть /: bid из пути, то он создаст собственный путь, который я ожидаю.
Может кто-нибудь объяснить, почему это происходит?
Теперь я не могу найти его ни в каком источнике, но я уверен, что динамические маршруты по умолчанию не называются, вы должны указать его явно, добавив 'as: 'bookings_withdraw'' (в этом случае) так что это ожидаемое поведение. – zrl3dx
Это все - спасибо. Я этого не понимал. Спасибо, много! – tommyd456
Если вы хотите добавить это в качестве ответа, я отметю вам, что это правильно. – tommyd456