永和システムマネジメントに入社してました

つい二週間ちょっと前に永和システムマネジメントに入社しました。
「この人達と仕事がしたい」というようなことが一番の理由でした。

今は早速Railsの案件に入り、毎日新たな発見をしてる最中です。まだあまり日が経っていませんが、けっこう変化がありました。

  • ~/.zshrc と ~/.vimrc が今までにないスピードで太り始めた
  • 仕事でテストコードを書いてる
  • 使い捨てのワンライナーをプロダクトコードに混ぜることに戸惑いを持ち始めた
  • 家でも仕事でも毎日RubyRailsを触れて不思議な感覚
  • 今まで知らなかったRailsの小技を色々と覚えた

Rubyに惹かれたきっかけはyieldと、selfのすり替えと、Mix-in。当時はどれも知らなくて、訳がわからないまま調べていくうちに自分でも使えるようになってきて、そしたらすごく好きになった。Enumerableってすごくいい。好きすぎて自分ちのうさぎを「まつもと」と呼ぶことにしたりした。

転職するまえ、自分にとってasakusa.rbや永和はどこか恐ろしいものにみえていて、でも、どこに行きたいか自問したときに見えてくるのもやっぱり同じひとたちだった。恐ろしかったのは、知らないといけないことがまだこの先にも山のようにマトリョーシカみたいに積み重なっていて、そのことに疲れるのを想像していたからかもしれない。怠け者め。

今さらですが歓迎会などなど楽しかったです。ありがとうございました。これからよろしくおねがいします。

RubyKaigi2010に行ってきたこと


RubyKaigiへ行ってきました。
今回初めて参加したんですが、想像以上にクオリティが高かったです。スタッフの方々、および何らかの形で運営に関わった方々、本当にお疲れ様でした&ありがとうございました。

当日の動画などは↓から見ることができるようです。

  1. http://rubykaigi.tdiary.net/20100828.html#p02
  2. http://rubykaigi.tdiary.net/20100829.html
  3. http://rubykaigi.tdiary.net/20100831.html
  4. http://rubykaigi.tdiary.net/20100901.html

寝坊したり、途中でふらふら外に出たりしていたせいで、いくつかの発表を見逃してしまった。近いうちに動画などで補完していく予定。まずは頭に残っている印象を書き出しておきます。

  • 英語の発表がなかなか理解できなくてとても焦った
  • スライドにちょいちょい出てくるujihisa氏 「Use Vim!」
  • sora_h氏のフットワークすごい
  • mapが大人気(好きなメソッド)
  • 「How to survive in post Rails' world」がお気に入り
  • 「Think Global, Act Regional」
  • 高橋さんの発表で谷山浩子を連想した
  • 次は最後のRubyKaigi

もっと勉強したいことがたくさんあること、もっとアウトプットを増やしていきたいということ、英語できないのがかなり苦しいこと、などが常に頭でぐるぐるまわってました。焦燥感が半端ない。
本当はここで「ここがよかった」とか「こう思った」とかもっと感想を書こうと思っていたんですが、まとめ力が弱すぎてすっきりと書き出すまでにかなり時間を要しそうな状況です。
やるべきことが色々と見つかったので、それを消化しながら、最後のRubyKaigiまでに何をしたいのか考えて、また時々書き出していきたいなー。

Herokuで使うRubyを1.9.1から1.8.7に戻した

Rails3.0.0.rcを使ってるんですが、色々と不都合があったのでRubyのバージョンを泣く泣く戻しました。具体的にはこんな感じです。

  1. rakeできないのでcronが使えない
  2. include Mongoid::Document したmodelをnewすると[NoMethodError: undefined method `sanitize' for #]のような例外が出る

cronは自前のサーバとかでなんとかできるとして、newできないのはだめだ。
今日は途中までエラーを追いかけたりしてたんですけど(モンキーパッチなど作ってやり過ごそうとしていた)、開発環境で再現できないし、色々試してみようにも時間があまりなかったので一旦諦めました。時間ができたらHerokuで動いてるruby-1.9.1-p129を開発環境に入れたりして確かめられたらなーと思います。
Herokuで使ってるRubyを1.8.7にすると不都合は解消されました。しばらくこれでいきます。

Herokuでrakeがころぶ

タイトルのまんまです。お手上げ寸前。
そういえば、少し前にHerokuのBundlerのバージョンが1.0.0.rc.2に上がってました。なのでrails 3.0.0.rcのままでもデプロイできます。
rakeがうまくいかないのは、"Rails 3 doesn't officially support Ruby 1.9.1"って言ってるししょうがないんですかね。

% cat Gemfile
source 'http://rubygems.org'

gem 'rails', '3.0.0.rc'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'mongoid', '2.0.0.beta.15'
gem 'bson_ext'
gem 'oauth'
gem 'json'
% cat Rakefile
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)
require 'rake'

Rsss::Application.load_tasks
% cat lib/tasks/cron.rake
task :cron => :environment do
  puts 'piyo'
end
% heroku rake cron --trace
    Rails 3 doesn't officially support Ruby 1.9.1 since recent stable
    releases have segfaulted the test suite. Please upgrade to Ruby 1.9.2
    before Rails 3 is released!

    You're running
      ruby 1.9.1p129 (2009-05-12 revision 23412) [x86_64-linux]

/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:32: warning: already initialized constant RAKEVERSION
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS
WARNING: Possible conflict with Rake extension: String#ext already exists
WARNING: Possible conflict with Rake extension: String#pathmap already exists
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:404: warning: already initialized constant EMPTY_TASK_ARGS
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:452: warning: already initialized constant EMPTY
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:960: warning: already initialized constant RUBY_EXT
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:964: warning: already initialized constant RUBY 
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1033: warning: already initialized constant LN_SUPPORTED
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1242: warning: already initialized constant ARRAY_METHODS
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1245: warning: already initialized constant MUST_DEFINE
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1249: warning: already initialized constant MUST_NOT_DEFINE
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1253: warning: already initialized constant SPECIAL_RETURN
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1259: warning: already initialized constant DELEGATING_METHODS
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1569: warning: already initialized constant DEFAULT_IGNORE_PATTERNS
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1575: warning: already initialized constant DEFAULT_IGNORE_PROCS
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1612: warning: already initialized constant FileList
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1638: warning: already initialized constant EARLY
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1968: warning: already initialized constant DEFAULT_RAKEFILES
rake aborted!
stack level too deep 
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
<<中略>>
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/core_ext/time/calculations.rb:282:in `compare_with_coercion'
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1650:in `<=>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/test_unit/testing.rake:93:in `>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/test_unit/testing.rake:93:in `block (3 levels) in <top (required)>'
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1268:in `select'
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1268:in `select'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/test_unit/testing.rake:93:in `block (2 levels) in <top (required)>'
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake/testtask.rb:91:in `initialize'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/test_unit/testing.rake:91:in `new'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/test_unit/testing.rake:91:in `block in <top (required)>'
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1882:in `in_namespace'
/usr/ruby1.9.1/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:910:in `namespace'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/test_unit/testing.rake:86:in `<top (required)>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/dependencies.rb:215:in `load'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/dependencies.rb:215:in `block in load'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/dependencies.rb:205:in `block in load_dependency'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/dependencies.rb:570:in `new_constants_in'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/dependencies.rb:205:in `load_dependency'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/activesupport-3.0.0.rc/lib/active_support/dependencies.rb:215:in `load'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/test_unit/railtie.rb:12:in `block in <class:TestUnitRailtie>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/railtie.rb:184:in `call'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/railtie.rb:184:in `each'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/railtie.rb:184:in `load_tasks'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/application.rb:140:in `block in load_tasks'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/application/railties.rb:11:in `each'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/application/railties.rb:11:in `all'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/application.rb:140:in `load_tasks'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/railties-3.0.0.rc/lib/rails/application.rb:77:in `method_missing'
/disk1/home/slugs/258233_f2821a9_8ba0/mnt/Rakefile:7:in `<top (required)>'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `load'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:2017:in `block in load_rakefile'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:2000:in `block in run'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/slugs/258233_f2821a9_8ba0/mnt/.bundle/gems/ruby/1.9.1/gems/rake-0.8.7/bin/rake:31:in `<top (required)>'
/usr/ruby1.9.1/bin/rake:19:in `load'
/usr/ruby1.9.1/bin/rake:19:in `<main>'
(in /disk1/home/slugs/258233_f2821a9_8ba0/mnt)

HerokuとRails3とMongoDB

Heroku上のRailsからMongoDBの中身を参照できるあたりまで試してみました。忘れないうちにメモしておきます。今回やってみてわかったことは下記。

  1. 今はrails 3.0.0.rcだとそのままデプロイできない
  2. MongoDBを使うにはアドオンを使う(クレジットカードが必要)
  3. Heroku上で動くRubyのバージョンはいくつかあるうちから選べる
  4. herokuコマンドってべんり

Herokuのプロジェクトを作ってPush

ここのステップ通りにやれば、おおむねうまく行きました。herokuコマンドは、

% gem install heroku

で入れます。
ここは特筆すべきことが無い筈なんですが、環境がRails 3.0.0.rcだと、今現在はbundlerのバージョンが違うと怒られてHerokuにうまくデプロイできなかった。http://blog.mhartl.com/2010/07/28/deploying-to-heroku-with-rails-3-0-0-rc/を参考にbundlerのバージョンを落としたりGemfileをちょっと編集したり。これでHerokuにPushできた。

bundlerのバージョンを落とす
% [sudo] gem uninstall bundler
% [sudo] gem install bundler -v 0.9.26
Gemfileをちょっと編集
source 'http://rubygems.org'

#gem 'rails', '3.0.0.rc' # コメントアウト
gem 'rails', '3.0.0.beta4' # バージョンを変える
bundle installし直し
% rm -f Gemfile.lock
% bundle install
% bundle lock

プロジェクトにアドオン「MongoHQ」を追加*1

MongoDBを使うにはプロジェクトにMongoHQというアドオンを追加します。アドオンの追加をするには無料版でもクレカの登録が必要(登録は初回だけ)。
Compose MongoDB - Add-ons - Heroku Elements
登録していないと「You must be verified to add MongoHQ Free」だったかそんな感じのことを言われます。
肝心のアドオンの追加自体は、WebからやってもTerminalのherokuコマンドでやってもいいみたいです。herokuコマンドで追加する場合は↓みたいな感じです。

% heroku addons:add mongohq:free

ローカルの開発環境からMongoHQにつないでみたりする場合、heroku console で繋いだら ENV['MONGOHQ_URL'] にDSNが入ってます。

% heroku console
>> ENV['MONGOHQ_URL']  # 使ってるMongoHQのURLが入ってる
=> "mongodb://username:password@server:port/dbname"
>> exit
% export MONGOHQ_URL='mongodb://username:password@server:port/dbname' 
% rails c  # とかでローカルからもMongoHQを見にいけたよ

DBに接続するためにGemfileとか色々編集

mongo_mapperを使うので下記をGemfileに記述。

gem 'mongo_mapper'

bundle installとかいろいろする。

% rm -f Gemfile.lock
% bundle install
% bundle lock

config/initializers/mongo.rb とか作って接続の部分を記述(これでいいのか?)。

require 'mongo_mapper'

MongoMapper.config = { 
  'development'=>{'uri'=>ENV['MONGOHQ_URL']},
  'test'=>{'uri'=>ENV['MONGOHQ_URL']},
  'production'=>{'uri'=>ENV['MONGOHQ_URL']}
}

MongoMapper.connect RAILS_ENV

ひとまずこれで繋がるようになりました。modelとか作るのはMongoMapper, The Rad Mongo Wrapper // RailsTips by John Nunemakerを参考に。

Heroku上で動くRubyのバージョンを指定

色々触っているとHeroku上で動いているRubyのバージョンが1.8.7なことに気づきます。
デフォルトだと1.8.7が動いてるみたいです。1.9.1などに変更したい場合は、http://docs.heroku.com/bambooを参考に変更します*2。具体的には、

% heroku stack:migrate bamboo-mri-1.9.1

などとすればOK。*3

*1:これが最初はイマイチ使い方がわからなくて、MongoHQのサイトに行って一からアカウントを作ってみたりしていたんですが、よく調べてみると操作はHerokuの中だけで完結できるようです。

*2:heroku createするときにも--stackで指定できる

*3:1.9.1の場合は次のPushで反映されるみたいです

rvm使うときはgemのオプションに--user-installつけない

rvmで入れたRubyを使ってるときに、sudoつけずにgemで何か入れようとするとなんだかおかしなことになってハマったのでメモ。原因は.gemrcに書いてた--user-installでした。

経緯

  1. rvmをいれました
  2. rvm install ruby-1.9.2-rc2
  3. rvm use ruby-1.9.2-rc2
  4. gem install rails --pre

で、gemの警告が出るんですが、インストールはうまく行ったような感じになる。でもそのあとで gem list すると何も入ってない。

% gem install rails --pre
WARNING:  You don't have /Users/hibariya/.gem/ruby/1.9.1/bin in your PATH,
          gem executables will not run.
Successfully installed activesupport-3.0.0.rc
Successfully installed builder-2.1.2
Successfully installed i18n-0.4.1
Successfully installed activemodel-3.0.0.rc
Successfully installed rack-1.2.1
Successfully installed rack-test-0.5.4
Successfully installed rack-mount-0.6.9
Successfully installed tzinfo-0.3.22
Successfully installed abstract-1.0.0
Successfully installed erubis-2.6.6
Successfully installed actionpack-3.0.0.rc
Successfully installed arel-0.4.0
Successfully installed activerecord-3.0.0.rc
Successfully installed activeresource-3.0.0.rc
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.8
Successfully installed mail-2.2.5
Successfully installed actionmailer-3.0.0.rc
Successfully installed thor-0.14.0
Successfully installed railties-3.0.0.rc
Successfully installed bundler-1.0.0.rc.2
Successfully installed rails-3.0.0.rc
23 gems installed
<<以下略...>>

railsコマンドを叩いても何か既存のやつが呼ばれておかしなことに。

% rails --version
/opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
        from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:214:in `activate'
        from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:1082:in `gem'
        from /opt/local/bin/rails:18

--user-install つけないほうがいい

~/.gemrcに記述していたオプションを外せばこの現象はなくなる。

gem: --user-install

これがついてるとGem.user_dirがGEM_HOMEとして使われて、~/.gem 以下にgemがインストールされる。普通はこれでいいんですけど、rvmは~/.rvm以下にそれぞれのバージョンのRuby環境をごっそり入れているので、意図しない場所にgemが飛び散る。なのでこのオプションは使わない方がいいみたい。

その他

よくわからないのは、今回使ったのはruby-1.9.2-rc2なんですが、PATHのいたるところに1.9.1っていうのが入っていて、はじめこれも何か原因があるのかと思っていたけど、なんかこれは問題ないみたい(本当に?)。RC版だからなのかなーとか思ってそのまま使ってます。
→(20100801追記)問題ないみたいでした。
 Yukihiro Matsumoto on Twitter: "@pussy_cat そういえば1.9.2と1.9.1はバイナリレベルでコンパチなのでバージョン番号変えなかったと聞いたような。"