Ruby on Rails 3.2 をDotCloudに導入しよう MySQL編 (エラー対応) | IT悶々日記

IT悶々日記

IT業界で悶々と奮闘するコンサルタント兼エンジニアの日記

さて、前回まではMySQLに接続するRailsアプリをDotCloudにデプロイするところまでやりました。
デプロイ後にユーザ情報を取得する画面(/users)に
アクセスしたところ、500エラー画面が表示されてしまいました。
ログには目立ったメッセージは出力されていません。

今回はこのエラーへの対応を記述します。
まずは500エラーとなっている原因がログに出力されなければ話になりません。
Railsの細かい挙動はまだ理解しきれてないので、
開発(development)と同じようにログを出力させようということで、

#cd config/environments/
#cp production.rb production.rb.org
#cp development.rb production.rb
#dotcloud push kazoku

と本番設定を開発設定で上書いちゃいましょう。(もちろんバックアップは取ったうえで、ね)
dotcloudにpushして確認すると、JavaScript Runtimeが見つからないというエラーが。

ググったら同じところで躓いた人たちと解決方法を発見。
http://d.hatena.ne.jp/tetsuyai/20110920/1316487020

Gemfileに以下のGemを読み込ませるようにしたところ、
無事解決いたしました。

gem 'execjs'
gem 'therubyracer'

サーバサイドJavaScriptのRuntimeが必要なんですねー。
え、なんで?って思いますが、とりあえずエラーが解決できてよかった。

Railsでは'execjs'と'therubyracer'を必ず読み込むこと。
これ鉄則ですねー。(最初からGemfileに書いておいてくれればいいのに。。)

p.s. 上書きしちゃったproduction.rbは後で前のに直しておきましたとさ。