рубин на рельсах не соответствует маршруту действие: удалить

StackOverflow https://stackoverflow.com/questions/4846166

Вопрос

Я устанавливаю дружбу на веб-сайте RoR. Модель для него - user_id, friend_id и ожидающая (логическая). Я следил за RailsCast по большей части из-за дружбы, но внес в него некоторые изменения. Пока что у меня есть то, что когда вы переходите на страницу пользователя, вы можете щелкнуть «Запросить дружбу», и код использует:

родовое слово

Это вызывает метод create в контроллере Friendships. Он автоматически устанавливает для ожидания значение true. Сейчас я хочу иметь ссылку на Принять, которая просто превратилась бы в ожидание в false. Итак, я пытаюсь настроить его как

родовое слово

На самом деле я не хочу переходить на страницу редактирования, потому что ему просто нужно установить это логическое значение в false, поэтому я хочу вызвать обновление напрямую. Но когда я запускаю эту страницу, я получаю сообщение об ошибке:

родовое слово

Не понимаю почему. Я не вызываю уничтожение (это будет с: method=>: delete), и на самом деле в контроллере Friendship есть метод уничтожения.

Ресурсы настроены следующим образом:

родовое слово

И пути от выполнения "rake routes":

родовое слово

Любая помощь будет принята с благодарностью. Пожалуйста, дайте мне знать, если вам потребуется дополнительная информация.

Спасибо.

Это было полезно?

Решение

Путь, который существует в соответствии с маршрутами рейка

родовое слово

Метод, который вы используете, помещен, но вы не предоставляете ': id'.

В зависимости от того, что вы пытаетесь сделать, есть два решения:

  1. Измените метод получения - это укажет вам на новое действие.
  2. Добавьте: id в свой конструктор URL - это укажет вам на действие обновления.

Ваш код склоняется ко второму, но я думаю, что если вы хотите создать новую дружбу, первое будет лучше.

Другие советы

Я не понимаю, почему вспомогательный URL-адрес сопоставляется с действием уничтожения.Однако существует более простая проблема: user_friendship_path ожидает params :user_id и :id, а не :friend_id.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top