Я сталкивался с подобной проблемой для статических подстраниц, нашел следующее решение.
В маршрутах.rb
match 'about/(:page)', :to => 'about#show', as: 'about'
match 'about/what-we-do', :to => 'about#show', as: 'what_we_do'
В файле about_controller.rb
class AboutController < ApplicationController
def show
unless params[:page].blank?
render "about/#{params[:page].underscore}"
end
end
end
В ваших представлениях вы можете ссылаться на пути псевдонимов.
<%= link_to 'About', about_path %>
<%= link_to 'What We Do', what_we_do_path %>
Поэтому /about
по умолчанию будет отображать представление about.html.erb
.
Но /about/what-we-do
будет отображать представление about/what_we_do.html.erb
.
Поможет ли что-нибудь подобное решить вашу проблему?