Railsを始めて一番最初にハマったこと
[tester@localhost]~% rails rails /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/options.rb:32:in `default_options': undefined method `write_inheritable_attribute' for Rails::Generator::Base:Class (NoMethodError) from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:90:in `<class:Base>' from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:85:in `<module:Generator>' from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:48:in `<module:Rails>' from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:6:in `<top (required)>' from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator.rb:34:in `require' from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator.rb:34:in `<top (required)>' from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/bin/rails:14:in `require' from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/bin/rails:14:in `<top (required)>' from /usr/local/bin/rails:19:in `load' from /usr/local/bin/rails:19:in `<main>' [tester@localhost]~%
!?
調べたらirbでactivesupportをrequireしてみろとのことだったのでやる。
[tester@localhost]~% irb irb(main):001:0> require 'activesupport' LoadError: no such file to load -- activesupport from (irb):2:in `require' from (irb):2 from /usr/local/bin/irb:12:in `<main>' irb(main):002:0>
oh...
原因
[tester@localhost]~% gem install rails
これによって、ユーザディレクトリ配下の.gemディレクトリに諸々がインストールされてしまっていた。
これではrequireにパスが明示されていない限り読めない。
解決方法
[tester@localhost]~% sudo gem uninstall actionmailer actionpack activerecord activeresource activesupport rack rails #アンインストール中いろいろ流れる [tester@localhost]~% sudo gem install rails
幸福実現
[tester@localhost]~% rails rails create create app/controllers ・ ・ ・ create log/test.log [tester@localhost]~%