У меня есть три модели Project, Card и Task.
проектhas_many :cards
картаhas_many :tasks
Я определил маршрут для создания карт следующим образом:
resources :projects, except: [:new, :edit, :show] do
resources :cards do
resources :tasks
end
end
Он создаст путь для открытки как: projects/:project_id/cards/
Он создаст путь для задания как: projects/:project_id/cards/:card_id/tasks
Что мне нужно:
Маршруты Карта должны быть вложены в Проект. (который у меня сейчас есть) и маршруты Задача должны быть вложены только в Карта, например /cards/:card_id/tasks (который мне нужен).
Как я могу этого добиться?
Заранее спасибо!
@ray, да. Я уже упоминал об этом в вопросе





Вы можете просто сделать,
resources :projects, except: [:new, :edit, :show] do
resources :cards
end
И далее попробуйте определить каждый маршрут для задачи по,
get '/cards/:card_id/tasks', to: 'tasks#index'
Я не тестировал, но должен работать. К сожалению, вам нужно определять это для каждого конкретного маршрута.
Таким образом, мне нужно вручную добавить все маршруты задач, такие как редактировать, создавать, обновлять, уничтожать и т. д.
Я хотел бы, чтобы была лучшая альтернатива, но чтобы заставить ее работать временно, вы можете попробовать выше.
resources :projects, except: [:new, :edit, :show] do
resources :cards
end
resources :cards do
resources :tasks
end
Это то, что вы ищете
у карты много задач?