11

アプリケーションを Rails 3 にアップグレードする準備を整えるプロセスの一環として、非推奨の RAILS_ROOT を Rails.root に置き換えたいと考えています。アプリケーションは現在バージョン 2.3.14 で実行されており、もともとは 1.2 で作成されていました。

私の boot.rb ファイルの先頭には、次の行があります。

RAILS_ROOT = "#{File.dirname( FILE )}/.." 定義されていない場合?(RAILS_ROOT)

Rails は定義されていないため、ここで Rails.root を置き換えることはできません。

Rails.root の推奨設定方法は?

質問を十分に明確にしたとは思いません。

  • Rails.root が Rails 2 に既に存在することは承知しています。
  • 自分のコードで Rails.root を問題なく使用できます。
  • しかし、起動時にRails.rootを設定する方法がわかりません。私は現在、次の行で boot.rb の一番上に設定されているようです:

    RAILS_ROOT = "#{File.dirname( FILE )}/.." 定義されていない場合?(RAILS_ROOT)

  • エラーが発生するため、その行を Rails.root を使用するように変更することはできません。

    ../config/boot.rb:3: 初期化されていない定数 Rails (NameError)

ありがとうジョージ

4

2 に答える 2

12

このように使用できます

 Rails.root.join('lib/ca-bundle.crt')

それを試してみてください

于 2012-04-19T12:44:02.790 に答える
2

Rails.rootRails 2.3 に実際に存在していたようです: http://apidock.com/rails/v2.3.2/Rails/root/class

そして 2.3 では を返すだけRAILS_ROOTなので、私が間違っていない限り、Rails.root他の変更を加えずにコードで使用できます。アップグレードを行うboot.rbと、モジュールと同様に置き換えられるRailsため、コードは引き続き適切に機能するはずです。

また、まだ使用していない場合は、少し前に 2.3 から 3.0 にアップグレードするときに、同僚とこのプラグインが非常に役立つことを発見しました: https://github.com/rails/rails_upgrade

于 2012-04-19T12:39:31.280 に答える