machida

マチダのブログ

Rails で静的ページを作る簡単な方法

例えば、「利用規約」や「プライバシーポリシー」、ヘルプページなど、毎回サービスをリリースするときに必要になる静的ページがありますが、そういうページを作るときに、Rails の controllerroutes をいじるのが面倒。

Middleman はファイルを置けば静的ページが作られるってところが便利で、Rails でもそういう機能が欲しいって思うときがあります。

その機能を実現するのが thoughtbot が作った「high_voltage」っていう Gem。thoughtbot は他にも bourbon や paperclip 、factory_girl など、デザイナでもよく聞く有名な Gem を作ってる会社。

high_voltage のインストール

まずは Rails アプリの Gemfile に、

1
gem 'high_voltage'

を追加して、

1
$ bundle

コマンドを打ちます。

これで high_voltage が使えるようになりました。

注意

pages という controller をすでに使ってる場合、high_voltage は使えないです。

ページの作成

app/views のディレクトリの中に pages というディレクトリを作ります。

コマンドラインで作る場合はこう。

1
$ mkdir app/views/pages

で、試しに about ってページを作ってみましょう。

app/views/pages/ のディレクトリの中に about.html.erb(もしくは、about.html.hamlabout.html.slim など)を作ります。

コマンドラインで作る場合はこう。

1
$ touch app/views/pages/about.html.erb

適当に about.html.erb (もしくは、about.html.hamlabout.html.slim など)に何か書いておきます。

about.html.erb

作成したページの確認

Rails を立ちあげて、

1
$ rails s

作成したページにアクセス(http://localhost:3000/pages/about)。

確認できました。

作成したページにアクセス

作成したページへリンクを貼る

作成したページのパスは page_path('about') となります。なのでリンクは、

erb

1
<%= link_to 'about', page_path('about') %>

haml、slim

1
= link_to 'about', page_path('about')

と、書きます。

作成したページの URL から /pages を削除

今のままだと http://localhost:3000/pages/about という URL になってますが、この pages がいらない! http://localhost:3000/about がいい、ってこともあります。

その場合、config/initializers/ ディレクトリの中に high_voltage.rb というファイルを作成して、そこに

1
2
3
HighVoltage.configure do |config|
  config.route_drawer = HighVoltage::RouteDrawers::Root
end

と、書きます。

それから Rails を再起動すると、http://localhost:3000/about に URL が変わります。

URL が変わっても、パスの書き方は page_path('about') のまま。

階層を作る

例えば、http://localhost:3000/help/post や、http://localhost:3000/help/read のような階層を作る場合、静的ページを入れている app/views/pages/ の中に help ディレクトリを作って、その中に post.html.erb(もしくは、post.html.hamlpost.html.slim など)、 read.html.erb(もしくは、read.html.hamlread.html.slim など)を入れます。

すると、http://localhost:3000/help/posthttp://localhost:3000/help/read にアクセスできるようになります。

リンクを貼るときのパスの書き方は page_path('help/post')page_path('help/read') となります。

映像夜間中学講義録 イエスタディ・ネヴァー・ノウズ(DVD付)
根本敬
K&Bパブリッシャーズ
売り上げランキング: 303,534
comments powered by Disqus