Railsで次のエラーへの対処法:We’re sorry, but something went wrong.
Ruby on Rails で楽しくウェブアプリを作ろうとコントローラを以下のように作成して http://localhost:3000/main/index/ にアクセスを試みたのですが、エラーに遭遇したのでその対処法メモです。
1 | ruby script\generate controller main |
アクセスすると、まだビューを作成していないので本来なら「Template is missing」と表示されるはずなのに、表示されるのは以下のメッセージ。「something went wrong」と言われても困ります。僕のほうこそそこを知りたいw
We’re sorry, but something went wrong.
We’ve been notified about this issue and we’ll take a look at it shortly.
Rails 本にもこのエラーについては一切触れられておらず、原因がよくわからないので、仕方なくふて寝。寝る前に Ctrl + C で WEBrick サーバはとりあえず停止させます。
ずっとふて寝しているわけにもいきませんので、エラーの原因を探ってみます。development.log を見てみると、SQLite3 がないとか怒られている様子。ググってみると、似たような問題に悩まされている方々がけっこういるようです。Computer Practice: Ruby on Railsで”Something went wrong”のエラーが出る(2) を参考に SQLite3 をインストールしてみます。バージョンはとりあえず指定せず。
1 | gem install sqlite3-ruby |
おぉ、出力を見るとなにやらちゃんとインストールされている感じ。DLL も必要とのことなので、SQLite Download Page から sqlitedll-3_7_0.zip(2010年08月04日現在)をダウンロード&解凍して sqlite3.dll をゲット。C:\Windows\system32\ に置いてあげます。
再び WEBrick を起動して http://localhost:3000/main/index/ にアクセスしてみると、今度はちゃんと表示されました。めでたし、めでたし。
Ruby on Rails で遭遇するエラーで今回のように「We’re sorry, but something went wrong.」と表示されるものすべてが SQLite3 のインストールで解決するわけではないでしょうが、よくわからないエラーに遭遇するのは初期のほうが多い気がするので、今回の記事は SQLite3 だけとりあげて書いてしまいました。
てか SQLite3 のインストールができていなかったとか、よくよく考えてみれば僕があほでした。gem install rails で全部インストールされるもんだと勘違いしちゃったわけです。うーん、思い込みって怖いですねぇ。
※ 追記(August 5, 2010)
どうやら、Rails 2.0.2 からデフォルトのデータベースが SQLite3 になったようで、にもかかわらず僕は MySQL を使いたかったというのが今回の根本的な原因のようです(コメント欄参照)。MySQL を使いたいのに SQLite3 を入れてないと怒られるなんておかしいと思ったら……w
データベースを MySQL にしたい場合は、プロジェクト作成時に以下のように打ち込むといいようです(hogehoge はプロジェクト名)。
1 | rails -d mysql hogehoge |
僕はと言えば、上のコマンドで MySQL での構築を試みたら、またしても同じ現象が生じてしまいました。でもエラーログの内容がちょっと変わったので別の原因っぽいです。ということで、現在原因究明中です!
※ さらに追記(August 7, 2010)
試しに Rails のバージョンを MySQL がデフォルトサーバだったところまで下げてみました。
1 | gem install Rails -v=x.x.x |
このままだとまだ最新版(2.3.8)が残っていたのでアンインストール。他のバージョンをインストールしたら自動で上書きされると思った僕がバカでした orz
1 | gem uninstall Rails -v=2.3.8 |
この状態でプロジェクトを作成し、コントローラを作成し……とまったく同じ手順でやってみました。すると、何の問題もなし。config\database.yml は adapter: mysql となっています。うーむ……。
よろしければ以下の関連(してそうな)記事もどうぞ!
- Ruby1.8.7以降ではtruncateメソッドの仕様が変わったらしくエラーが起きる
- RailsのWEBrickサーバを強制的に停止する方法
- Railsのfindで複数のテーブルから検索する:includeでeager loading
- Gmailダウン時に試す価値のある7つの対処法(ライフハッカーさんより)
- Google Gearsがアップデート、Firefox 3.5に対応
- « 前の記事:RailsのWEBrickサーバを強制的に停止する方法
- » 次の記事:Gmail画面のGoogle Taskリンクを消すスタイル
![[画像] 今日の気になる記事「きにきじ」QR Code](http://www.kagitaku.com/diary/images/qrcode.png)
![[画像] きにきじ Feed](http://www.kagitaku.com/diary/images/Newspaper_Feed_128x128_ie6.png)
![[画像] kagitaku.com ロゴ](http://www.kagitaku.com/common/images/logo.png)





![[画像] 最上部へ](http://www.kagitaku.com/common/images/pageNavi-toTop.png)
![[画像] 最下部へ](http://www.kagitaku.com/common/images/pageNavi-toBottom.png)
![[画像] 履歴を戻る](http://www.kagitaku.com/common/images/pageNavi-back.png)
![[画像] 履歴を進む](http://www.kagitaku.com/common/images/pageNavi-forward.png)
![[画像] Contact](http://www.kagitaku.com/common/images/pageNavi-contact.png)
![[画像] Sitemap](http://www.kagitaku.com/common/images/pageNavi-sitemap.png)
星野です。いつもアウトプットありがとうございます!
本件ですが、config/database.yml で設定しているデータベースの種類の問題ではないかな? と思いました。
たとえば、 database.yml で ‘adapter: mysql’ と記述した場合、そのrailsプロジェクトはMySQLを使おうとします。’adapter: sqlite3′ ならSQLite3です。
‘adapter: sqlite3′ と記述しているのにSQLite3が入っていなければ、記事中のようなエラーが出るかと思います。
鍵山さんの使いたいデータベースと database.yml の設定が合っているか、確認してみてくださいね。
なお、railsのバージョンによってデフォルトのデータベースの種類(database.yml の設定)が変わるため、その点もご確認頂くとよいかもしれません。
Ruby on RailsデフォルトDB変更:MySQLからSQLite3へ
何かご不明点があれば、直接でも構いませんのでお尋ねください!
apo-co
» このコメントを引用してコメントする
星野さん
コメントありがとうございます!
確認してみたところ、確かに
config\database.ymlの設定が sqlite3 になっていました。Rails 2.0.2 からデフォルトのデータベースが MySQL ではなく SQLite3 になったんですね。いや~、知りませんでした……。教えていただいたリンク先を参考に MySQL での構築を試みています。
gem install mysqlでインストールしてプロジェクト作成をrails -d mysql hogehogeとしていますが、またしても同じ現象が生じてしまいました……orz でもエラーログがちょっと変わったので別の原因っぽいです。ということで、現在原因究明中です!もしかしたらバージョンを下げて会社と同じ環境にするかもしれません。まだわからないことだらけなので……(;・∀・)
Takku @きにきじ管理人
» このコメントを引用してコメントする
デフォルトデータベースの変更により・・とか>>Railsで次のエラーへの対処法:We’re sorry, but something went wrong. | きにきじ http://bit.ly/nhm04l
jkawakubo
» このコメントを引用してコメントする