Ruby on Rails link_to направляет на индекс вместо Show - PullRequest
2 голосов
/ 11 декабря 2011

У меня проблемы с кодом Ruby on Rails.У меня есть структура данных вложенных ресурсов (List has_many Задачи и Задача принадлежит_ списку).На моей странице List.show у меня есть следующая строка кода:

<td><%= link_to 'Show Task', list_tasks_path(@list, task) %></td>

Идея состоит в том, что эта страница будет ссылаться на страницу "показа", где я могу просмотреть детали отдельной Задачи.Я хочу, чтобы URL был в основном

/lists/:list_id/tasks/:task_id

Проблема в том, что приведенный выше код направляет меня к

/lists/:list_id/tasks.task_id

на странице индекса Задачи.Как я могу сказать Rails вместо этого отправить меня на страницу показа?

Я попытался добавить задачи: action => show and: controller =>, а также использовать show_list_tasks_path (@list, task).Я также знаю, что сама структура существует, потому что моя страница показа работает нормально, если я вручную ввожу /lists/:list_id/tasks/:task_id.

Любая помощь приветствуется.Спасибо!

-Сумма

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Более простой способ указать этот URL-адрес:

<%= link_to 'Show Task', [@list, task] %>

Вы также можете выполнить list_task_path(@list, task) (уведомление задание вместо заданий ).

Запустите rake routes, чтобы увидеть точные имена, которые рельсы генерируют для ваших маршрутов.

2 голосов
/ 11 декабря 2011

Проблема здесь в том, что вы используете list_tasks_path, когда вы должны использовать list_task_path.

Метод list_tasks_path сгенерирует URL для действия index, как вы уже знаете, и сделает второй аргумент форматом этого запроса.

Для получения дополнительной информации, пожалуйста, прочитайте Руководство по маршрутизации .

...