Rails3でNoMethodError: undefined method ‘accept’ for nil:NilClassが発生するとき

Rails3でmysqlを使うと、文字コードの問題が出た。DBから取得した文字列がASCII-8BITになってしまうという問題だ。
解決するには、Gemfileにgem “mysql2″とし、database.ymlの接続設定にadapter: mysql2を追加すればOKとのこと。

が、それをすると今度はモデルの検索時にNoMethodError: undefined method ‘accept’ for nil:NilClassが発生してしまう。

解決策は次のページにあった。
Rails 3: Model.all => NoMethodError: undefined method ‘accept’ for nil:NilClass

まずデータベースを破棄して・・・

$ rake db:drop RAILS_ENV=production

データベースを作成し直せばOK!

$ rake db:setup RAILS_ENV=production

また、mysql2のgemをインストールしようとすると、*** extconf.rb failed ***のエラーが出る場合がある。
Ubuntuの場合はlibmysql-ruby libmysqlclient-devをインストールすればOK

sudo apt-get install libmysql-ruby libmysqlclient-dev

1 Comment

Post a Comment

コメントを投稿するには、下の計算の答えを入力する必要があります。答えは半角数字で入力してください。 *