2014-12-10 2 views
0

У меня есть сайт, который показывает контент о летних/зимних видах спорта. Таким образом, содержимое разделено на категории, скажем, маршрут/лыжи идет на контент, связанный с лыжами,/виндсерфинг показывает содержимое виндсерфинга и так далее. Теперь я представляю себе создание какой-либо админ-панели, где я могу добавить произвольную категорию, которая раньше не существовала, скажем, «Сноубординг», это создало бы ссылку/сноубординг, которая затем показывала бы контент, помеченный сноубордом.Rails 4 динамическая маршрутизация

Итак, для достижения этого в Rails лучше иметь общий контроллер (назовем его PageContentController) и общую конфигурацию маршрутизации в route.rb, например: match ':controller(/:action(/:id(.:format)))', или есть лучший способ создать новый маршруты на лету?

Спасибо.

ответ

1

Я думаю, вы слишком много думали об этом, когда искали динамическую маршрутизацию (создание маршрута на лету).

Вы можете просто создать ресурс под названием Sport (рельсы г эшафот спорт) это создаст для вас:

  • Спортивная модель
  • SportController
  • просмотров, связанные с управлением спорта (Index , создание, чтение, обновление, удаление)
  • Добавить запись в routes.rb, такие как ресурсы: спорт (это создаст все необходимые маршруты для CRUD)

Оттуда вы можете динамически создавать отображение всех видов спорта на индексной странице, доступной по спорту/индексу. Показать спорт в/sports /: id или использовать дружественный url для отображения имени спорта вместо идентификатора.

+0

Имеет смысл, поэтому используйте драгоценный камень, подобный friendly_id, для маршрутизации, основанный на имени спорта вместо id, и используйте новый метод, чтобы просто создать новый вид спорта в спортивном столе. – Alistair

Смежные вопросы