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

In: Ruby / Rails| technology

1 5月 2008

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

そんなマイグレーションデビュー間もない私なのですが、いざ実行してみたら、あれ。
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:


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

Avatar

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

5月 1st, 2008 at 12:40:58

[...] ※2008/05/01追記。 これだけだと、gemのupdateはできるけど、rakeがどうも動かなくなります。 正しいgemのアップデートの仕方は、ここをご参考ください。 [...]

Comment Form

About this blog

ゆるーく、ふわーっと、興味のままに。

自分のかたわらに置いておくメモ代わり。

Photostream