Если у кого-то возникнет тот же вопрос, вот как я его решил.Я сделал собственный маршрут, действие контроллера и просмотр для каждой категории.И сделал собственный маршрут для каждой страницы показа категории, но использовал статьи показать действие и представление.Это прекрасно работает, если количество категорий мало.Если, например, ресурс статей имеет две категории: технология и экономика, файл маршрутов будет выглядеть следующим образом:
# config/routes.rb
get 'articles/technology/:id', controller: 'articles', action: 'show', as: 'technology_article'
get 'articles/economics/:id', controller: 'articles', action: 'show', as: 'economics_article'
resources :articles do
get :technology, on: :collection
get :economics, on: :collection
end
В контроллере статей я добавляю действие для технологии и одно для экономики.
def technology
@articles = Article.where(category: "technology").order(created_at: :desc)
end
def economics
@articles = Article.where(category: "economics").order(created_at: :desc)
end
И в представлениях статей я добавляю страницы представления с именами technology.html.erb и economics.html.erb, которые настроены как стандартная страница Rails index.html.erb, за исключением того, что они включают имя категории в верхней части.
Ссылки на эти страницы будут использовать technology_articles_path и economics_articles_path.А ссылки на отдельные технологические статьи будут использовать technology_article_path (article.id).
Все статьи, независимо от категории, будут использовать одно и то же действие и контроллер show.