ども、遠藤です。

そろそろアドベントカレンダーの時期が近づいてきましたね!

アドベントカレンダーといえば Qiita が定番ですが、イントラ環境で動かしたい人など向けに Ruby on Rails 製の radvent というアプリケーションがあり、勤務先の社内アドベントカレンダーで使われています。

nanonanomachine/radvent: Advent calendar app for programmers like Qiita

このアプリはとても素晴らしいアプリなのですが、機能追加のリクエストとして 「新着コメントをトップページで見れるようにしてほしい」という声が上がっていました。 GitHub を見てみたところ issue も上がっているようでしたが、作者様ご多忙のようなので、自分で改良しようと考えました。

アプリを改良するためにはまず検証用に手元で radvent を起動してみたいところですが、 rails 初心者にはいくつかハマりどころがあったので、試行錯誤の顛末を簡単にまとめます。

(1) ruby 環境のインストール + Rails インストール

そもそも Rails を動かすために、ruby を入れる必要があります。 まっさらの環境で ruby が入っていなかったので、下記サイトを参考にインストールしました。

rbenvでRubyを管理し、Rails開発環境を構築する | maesblog

ここでポイントは、システムに入っている ruby を使うのではなく、rbenv を使うということでした。 Python もそうですが、LL言語はバージョン間の違いが激しかったりするので、rbenv や pyenv のように 柔軟にバージョンを切り替えられるシステムは必須だと感じました。

なお、 radvent では ruby 2.1.5 が要求されている と言うのがちょっとしたハマリポイントでした。

(2) Javascript 実行環境のインストール

上記サイトの手順通りに Rails をインストールしたら、 $ bundle exec rails s でアプリケーションを立ち上げます。 しかし、エラーが出て立ち上がってくれません。

アプリケーションの実行に Javascript 実行環境が必要なのに、インストールされていないという問題でした。 Node.js をインストールするなどの手順がありますが、今回はなるべく環境を汚したくなかったので、 bundle install コマンドですべてがインストールできるようにしました。

手順は Gemfile を一行コメントアウトして、 therubyracer というパッケージを入れるだけでした。 詳細は下記PRを見てください。

add missing dependency: therubyracer by jo7ueb · Pull Request #39 · nanonanomachine/radvent

(3) 鍵の生成

次に bundle exec rails s をすると、鍵がないとのことで怒られてしまいます。

友人と Google 先生の助言より、鍵生成とコンフィグファイルの生成がわかりました。

(4) データベースの初期化

次に bundle exec rails s を実行すると、また別のエラーで怒られてしまいました。

今度は何を実行すればいいかがエラーメッセージに書いてあったので、素直に実行します。

(5) Finish!!

満を持して bundle exec rails s を実行したら、やっと動きました! 喜びが溢れます。


ruby 初心者には若干ハマリポイントがありましたが、なんとか手元で環境を立ち上げることができました。 次は、暇な時に色々と弄ってみて、コメント表示機能が追加できればいいな、と思います。

では。