Rails 4.2 階層を持った URL の静的ページを1つのコントローラーでルーティングしたい
Ruby on Rails のルーティングについてです。
複数の半静的ページを1つのコントローラーで制御しようとしています。
config/routes.rb に全ページ分 get メソッドを書くのも辛いので、下記のように書きました。
StaticPagesController.action_methods.each do |action|
match action,
action: action,
controller: :static_pages,
via: :get,
as: action
end
しかし、これでは階層を持った URL に対応できません。(example.com/foo/bar)
1つ1つ get 'foo/bar' => 'static_pages#bar' のように書く以外に解決法はないでしょうか。
完全に初心者なので「ない」もしくは「設計上好ましくない」ということだけでも確認したいです。
以上、よろしくお願い致します。
追記
StaticPagesController で、
example.com/page1 と、
example.com/foo/page2 と、
example.com/foo/bar/page3 の
全アクションを書くのが目的です。
コントローラーのコードは下記のようなイメージです。
class StaticPagesController < ApplicationController
def page1
end
def page2
end
def page3
end
end
ただし、できることなら
get 'page1' => 'static_pages#page1',
get 'foo/page2' => 'static_pages#page2',
get 'foo/bar/page3' => 'static_pages#page3'
と一つずつ書くのは避けたいです。