簡體   English   中英

用Rails.root替換RAILS_ROOT

[英]Replacing RAILS_ROOT with Rails.root

我想用Rails.root替換已棄用的RAILS_ROOT,作為使應用程序准備好升級到Rails 3的過程的一部分。該應用程序當前運行的版本為2.3.14,最初是在1.2中創建的

在我的boot.rb文件的開頭是行:

RAILS_ROOT =“#{File.dirname( FILE )} / ..”除非定義?(RAILS_ROOT)

我不能在這里替換Rails.root,因為Rails是未定義的。

設置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)

謝謝喬治

你可以像這樣使用

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

試試吧

看起來Rails.root實際上存在於Rails 2.3中: httpRails.root

在2.3中,它只返回RAILS_ROOT ,所以除非我弄錯了,你可以在代碼中使用Rails.root而無需其他修改。 當您進行升級時,您的boot.rb將被替換, Rails模塊也將被替換,因此您的代碼應該繼續正常運行。

此外,如果你還沒有使用它,我和我的同事發現這個插件非常有用,當時從2.3升級到3.0: https//github.com/rails/rails_upgrade

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM