high_voltageを使用して簡単に静的ページを作成する
静的なページを作成する時にそれぞれcontrollerを作るか検討していたら、high_voltageというgemを見つけました。
controllerやroutesを設定しなくともapp/view/pages
以下のファイルを表示できるようになるというものです。
前提
導入
まずはgemをinstallします。
gem 'high_voltage'
bundle install
次に、pages
ディレクトリを作成します。
mkdir app/view/pages
これでhigh_voltageを使う準備ができました。
簡単ですね。
使用方法
試しに利用規約のページを作ってみます。
app/view/pages
にterms.html.slim
というファイルを作成します。
touch app/view/pages/terms.html.slim
サーバーを立ち上げ、http://localhost:3000/pages/terms
へアクセスすると、空のページが表示されます。
先ほどのファイルに記述をして再度アクセスしたら表示が確認出来るかと思います。
パス
ページのパスは、page_path('*')
となります。
今回はtermsなのでpage_path('terms')
と指定してあげればリンクが作れます。
= link_to '利用規約', page_path('terms')
こんな感じで使うことができます。
URLのpagesを表示しないようにする
high_voltageで生成したページにはpages
というURLが含まれてしまいますが、設定で消すことができます。
config/initializers
にhigh_voltage.rb
という設定ファイルを作成します。
そこへ次のように記述をします。
HighVoltage.configure do |config| config.route_drawer = HighVoltage::RouteDrawers::Root end
一度サーバーを再起動したら、URLが変更されています。
http://localhost:3000/pages/terms
は使えなくなり、http://localhost:3000/terms
にアクセスすることで表示されます。
パスは変わらずpage_path('terms')を使います。