Индекс Rails на странице шоу

Какова стандартная практика для приложения rails, когда стандартный 'show.html.erb' для одной модели, по сути, просто перечисляет has_many другой модели? Для «дочерней» модели нет index, так как без контекста ее «родительской» модели их список был бы бесполезен.

Создание /parents/1/children/1 кажется правильным (особенно с точки зрения API), и все же на странице /parents/1 не будет ничего, кроме небольшой кнопки с надписью «продолжить» ... снова , бесполезный.

Создаю ли я отдельные маршруты, подобные приведенному выше, исключительно для API, или мне не хватает более чистого способа «Railsy».

ИЗМЕНИТЬ

Я не уверен, что вышеизложенное совершенно ясно. Если у меня есть Exam, который полностью состоит из Questions, будет ли способ Rails ссылаться на /exam/1/questions или только на /exam/1 со списком вопросов. Очевидно, что в большинстве случаев API перейдет к /exam/1/questions, но как насчет стандартной HTML-страницы? Вроде бы хочет быть /exam/1 но при вложенных ресурсах маршрут create (по умолчанию) переходит на маршрут /exam/1/questions. Если на маршруте /exam/1/questions/new возникает ошибка проверки, форма снова отображается на маршруте create (/exam/1/questions); если страница затем обновляется, вы получаете ошибку 404, так как для детей нет индекса.

Все это наводит меня на мысль, что Rails ожидает index действия для большинства моделей; но в приведенном выше примере это кажется странным.


person RichieAHB    schedule 25.03.2015    source источник


Ответы (1)


Если я вас правильно понимаю, вы не хотите, чтобы маршрут к /parents/1 был на вашем пути. По этой причине вы должны указать это в своем routes.rb

resource :parents, except: :show do
  resource :children
end
person lx00st    schedule 25.03.2015