マイグレーションでNoMethodErrorが出るのを直す

ひどく今さらですけれど、マイグレーションを勉強し始めました。
運用・保守とかやり始めてから知りましたけど、意外とテーブル定義ってころころ変わるもんなので、覚えておけば後々便利そうです。
(※中には、予備カラムをたくさん持っておいて、必要になったらそれを使う、というやり方もありますが、後の保守のしやすさとか考えると……ごにょごにょ)

そんなマイグレーションデビュー間もない私なのですが、いざ実行してみたら、あれ。
NoMethodErrorとか言って動かない。。


エラーは、こんな具合。


c:/ruby/bin/rake.bat:24: undefined method `require_gem' for main:Object (NoMethodError)

よくわかんなかったので調べてみたら、こんなお言葉が。

これは rubygems の最新(1.0.1)を入れたことにより、rubygems 0.X には存在した require_gem メソッドがrubygems 1.X ではなくなってしまったために発生していました。

引用元:undefined method `require_gem’ for main:Object - 夜の Discovery

と、いうわけで、gemのアップデートをする際は、本当はこうやらないとならなかったらしい。

gem update –system
gem pristine –all
(※WordPressのバグのため、表示上、ハイフンが1つになっていることがあるようですが、ハイフンは2つです)

そういえば、以前、バージョンアップを図ったときは、上のコマンドしか打ってなかったものね。そりゃ道理だ。
これで、rakeコマンドを打っても、きちんと動くようになりました。

ちなみに、下のコマンドを打ってみると、ときたま、こんなエラーが出ます。


ERROR:  Cached gem for win32-dir-0.3.0-x86-mswin32 not found, use `gem install` to restore

正直、よくわからないけど、無視しても問題はなさげ。
問題があったら、また考えよう。

Via:

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加 |

1 Response to “マイグレーションでNoMethodErrorが出るのを直す”


  1. 1 足の早いrailsのバージョンアップに乗っかる | Katawara.*

Leave a Reply