Я застрял в очень сложной проблеме, связанной с маршрутами Rails 3, и недостаточно хорош для маршрутов, чтобы понять это самостоятельно.У меня есть ресурс "Отзывы", в котором есть только действия "Показать" и "Индекс".Я использую гем Friendly ID для идентификаторов с добавленными тегами, а также у меня есть ресурс с вложенными комментариями, который позволяет людям комментировать отзывы.
resources :reviews, :only => [:index, :show] do
resources :comments, :only => [:new, :create]
end
Таким образом, мои пути к странице индекса - это просто «отзывы» и что-то вроде «обзоры / матрица» для действия шоу.Пока все достаточно просто.
Теперь, во-первых, я натолкнулся на своего рода главную страницу индекса.У меня есть гем will_paginate на странице индекса, и я кеширую страницу.Проблема в том, что кэширование не будет работать, когда путь будет выглядеть примерно так: / reviews? Page = 2, скорее, мне нужно указать путь / reviews / 2 / при разбивке на страницы, поэтому я добавил в приведенный выше предыдущий ресурс обзорасделать эту работу.
match 'reviews(/:page)' => 'reviews#index', :constraints => { :page => /[0-9]/ }
Почему ограничение?Потому что мой маршрут ресурса «Показать» не работает, потому что вышеприведенная строка - без ограничения числа - в конечном итоге оказывается «универсальной», которая мешает маршруту «Показать».Поскольку идентификатором действия показа всегда будут слова, в то время как у страниц индекса в индексе всегда есть номер, вот почему я сделал это следующим образом.
Но вот в чем дело, я не хочумаршрут «Показать» должен быть просто «обзоры / матрица».Понимаете, все рецензии классифицированы по типу рецензируемой вещи, поэтому мне бы очень хотелось, чтобы путь "Показать" был чем-то вроде "рецензий / фильмов / матриц" или "рецензий / книг / лордов кольца". '
Я бы предпочел использовать оригинальный путь' Показать 'рецензий для дополнительных страниц индекса категории, таких как' рецензии / книги '.(Еще одна причина вышеуказанного ограничения.) Но я собираюсь сохранить это для другого вопроса SO, поскольку я не хочу усложнять этот вопрос.
Итак, вернемся к предыдущему вопросу.Обычно я думаю, что вышеупомянутое может быть решено простым маршрутом «соответствия» (с маршрутизацией?), За исключением того, что у нас есть вложенные комментарии в ресурсе Reviews.Как мне создать страницы «Показать», как описано выше, при этом сохраняя вложенный ресурс Комментарии в Обзорах?