きにきじ」:今日の気になる記事をきまぐれにご紹介

Railsで次のエラーへの対処法:We’re sorry, but something went wrong.

Posted at 02:00 on August 4, 2010

Last updated at 23:13 on September 16, 2010

Category: Non-News, Note

Tags: , , , ,


※ 追記あり

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.ymladapter: mysql となっています。うーむ……。

▲上に戻る▲


よろしければ以下の関連(してそうな)記事もどうぞ!


3 Responses to “Railsで次のエラーへの対処法:We’re sorry, but something went wrong.”

  1. apo-co より:

    星野です。いつもアウトプットありがとうございます!

    本件ですが、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へ

    何かご不明点があれば、直接でも構いませんのでお尋ねください!

      

    » このコメントを引用してコメントする

    • 星野さん

      コメントありがとうございます!

      確認してみたところ、確かに config\database.yml の設定が sqlite3 になっていました。Rails 2.0.2 からデフォルトのデータベースが MySQL ではなく SQLite3 になったんですね。いや~、知りませんでした……。

      教えていただいたリンク先を参考に MySQL での構築を試みています。gem install mysql でインストールしてプロジェクト作成を rails -d mysql hogehoge としていますが、またしても同じ現象が生じてしまいました……orz でもエラーログがちょっと変わったので別の原因っぽいです。ということで、現在原因究明中です!

      もしかしたらバージョンを下げて会社と同じ環境にするかもしれません。まだわからないことだらけなので……(;・∀・)

        

      » このコメントを引用してコメントする

  2. jkawakubo より:

    デフォルトデータベースの変更により・・とか>>Railsで次のエラーへの対処法:We’re sorry, but something went wrong. | きにきじ http://bit.ly/nhm04l

      

    » このコメントを引用してコメントする

Leave a Reply


Copyright © 2008-2012 鍵山琢実 (KAGIYAMA, Takumi). All rights reserved.

This site's design was checked by IE 6.0+, Firefox 3.5+, GChrome 2.0+, Safari 4.0+, Opera 10.0+, and Sleipnir 2.8+ (all for Windows).
And JavaScript is used for some details. I am so sorry if your browser is not supported.

正当なCSSです! 私はチーム・マイナス6%です

↓ Today's My Favorite Phrase ↓

「きさま──いったい何人の命をその傷のために吸い取った!?」
「おまえは今まで食ったパンの枚数をおぼえているのか?」

From: 荒木飛呂彦 『ジョジョの奇妙な冒険』第3巻 p. 149