ruby script/consoleを実行すると、次のようなエラーが出ます。
具体的な解決方法をご教授ください。
*エラー
% ruby script/console
Loading development environment (Rails 2.3.8)
Missing the Rails 2.3.8 gem. Please `gem install -v=2.3.8 rails`, up
#ruby script/serverは正常に動作します
*経緯
1.rails2.3.8をインストール(この段階では正常に動作していました)
2.rails3.1.0をインストール
3.rails3.1.0をアンインストール(2.3.8と重なるgemもアンインストール)
4.現在(rails2.3.8はインストール済)
#gem listをコメント欄に記載しました
*環境
Mac OS X 10.6.8
ruby 1.9.2
よろしくお願い致します。
#せんせいを募集しています。詳細はコメント欄をご参照ください。
script/console と script/runner の環境の指定方法の違いがあるので、
そこをもう一度確認してみてはいかがでしょうか?
(環境の設定をするコードも全然違います。)
rails-2.1.2/lib/commands/runner.rb
require 'optparse'
options = { :environment => (ENV['RAILS_ENV'] || "development").dup }
ARGV.clone.options do |opts|
opts.on("-e", "--environment=name", String,
"Specifies the environment for the runner to operate under (test/devel
opment/production).",
"Default: development") { |v| options[:environment] = v }
end
ENV["RAILS_ENV"] = options[:environment]
RAILS_ENV.replace(options[:environment]) if defined?(RAILS_ENV)
rails-2.1.2/lib/commands/console.rb
ENV['RAILS_ENV'] = case ARGV.first # (1)
when "p": "production"
when "d": "development"
when "t": "test"
else
ARGV.first || ENV['RAILS_ENV'] || 'development'
end
console の方は (1) を見ると最初の一文字しか見ていないように見せかけておいて、script/console で require している initializer で config/environments/#{一文字}.rb というコードがあるため(下記 (2)を参照)、環境名をちゃんと指定しないといけないので、注意が必要です。
先生達(現在7名):http://twitter.com/#!/puriketu99/prk2master
下記に関する私の人力検索上の質問をTwitterのリプライで通知しようと思っています。
通知されることに差し支えがなければ、リプライをください。
http://twitter.com/#!/puriketu99
得意分野や何か一言ありましたら、書き添えてご連絡頂けると幸いです。
・Google App Engine for python
・python
・JavaScript
・Ruby
・Rails
・PhoneGap(iPhone,Android)
・Debian/Linux
・Top Coder
・Jenkins
・Salesforce
・Mac OS X
・各種API、ライブラリ
・その他周辺事項
補足
・全てに精通している必要はありません
・もし、途中で通知がご面倒になった場合は、一言おっしゃっていただければ通知をしないようにします
・気が向いたときに回答していただければ充分です
・開発をしているときは高い頻度で質問することがあります
・初歩的な質問が多いです(http://q.hatena.ne.jp/puriketu99/questionlist)
・なるべく、答えを知っている人であればすぐに答えられるような質問をするようにしています
・何か不明点があれば、Twitterやコメント欄でお問い合わせください
Rails 2.3.8 をアンインストールしたあとに、もういちど Rails 2.3.8 をインストールすると Rails 3.1.0 のアンインストールで消えたものでも、Rails 2.3.8 の動作に必要なものは再度インストールされるのではないかな、と思いますがどうでしょう。
いつも回答ありがとうございます。
Railsの入れ直しを行って見ましたが、改善しませんでした。
もうすこし色々やってみます。
script/console と script/runner の環境の指定方法の違いがあるので、
そこをもう一度確認してみてはいかがでしょうか?
(環境の設定をするコードも全然違います。)
rails-2.1.2/lib/commands/runner.rb
require 'optparse'
options = { :environment => (ENV['RAILS_ENV'] || "development").dup }
ARGV.clone.options do |opts|
opts.on("-e", "--environment=name", String,
"Specifies the environment for the runner to operate under (test/devel
opment/production).",
"Default: development") { |v| options[:environment] = v }
end
ENV["RAILS_ENV"] = options[:environment]
RAILS_ENV.replace(options[:environment]) if defined?(RAILS_ENV)
rails-2.1.2/lib/commands/console.rb
ENV['RAILS_ENV'] = case ARGV.first # (1)
when "p": "production"
when "d": "development"
when "t": "test"
else
ARGV.first || ENV['RAILS_ENV'] || 'development'
end
console の方は (1) を見ると最初の一文字しか見ていないように見せかけておいて、script/console で require している initializer で config/environments/#{一文字}.rb というコードがあるため(下記 (2)を参照)、環境名をちゃんと指定しないといけないので、注意が必要です。
回答ありがとうございます。
下記の点が不明でした。お手数おかけいたしますが、補足していただけると幸いです。
>script/console と script/runner の環境の指定方法の違いがあるので、
>そこをもう一度確認してみてはいかがでしょうか?
>(環境の設定をするコードも全然違います。)
>rails-2.1.2/lib/commands/runner.rb
確認先のパスがわかりませんでした。
>(下記 (2)を参照)
該当の箇所がわかりませんでした。
申し訳ありませんが、よろしくお願い致します。
回答ありがとうございます。
下記の点が不明でした。お手数おかけいたしますが、補足していただけると幸いです。
>script/console と script/runner の環境の指定方法の違いがあるので、
>そこをもう一度確認してみてはいかがでしょうか?
>(環境の設定をするコードも全然違います。)
>rails-2.1.2/lib/commands/runner.rb
確認先のパスがわかりませんでした。
>(下記 (2)を参照)
該当の箇所がわかりませんでした。
申し訳ありませんが、よろしくお願い致します。