2017-06-21 82 views
3

開始工作後我使用的軌道版本5.1.1,但是當我把它降級到4.2.7,然後它開始給我下面的錯誤:項目停止降級的Rails版本

`method_missing': undefined method `load_defaults' 

每當我嘗試運行「軌道的」它顯示在終端上面的錯誤,它只是一個新的項目,我只是通過使用安裝一個新的項目「軌新」,後來我改變在寶石文件中的軌道版本

gem 'rails', '~> 4.2.7' 

然後在我嘗試點擊「rails s」時,這樣做後就開始給我這個錯誤。

任何想法爲什麼會發生這種情況? 5.1.1版本生成

+3

根據[RailsDiff](http://railsdiff.org/4.2.7/5.1.1)版本'4.2.7'和'5.1.1'中新鮮的Rails應用程序的結構和文件完全不同內容。你爲什麼期望用最新版本生成的應用程序可以運行幾乎一年的版本? – spickermann

+0

只需重新生成應用程序。 –

+0

我不知道這是怎麼回事...呃問題有2 upvotes。 – mudasobwa

回答

4

Rails應用程序包括該行:

# in config/application.rb:12 
config.load_defaults 5.1 

load_defaults是在導軌5引入並在導軌4.2.x版

這就是說不存在的方法,你不能只降級Rails版本(順便說一句,你通常不能只升級)。您需要將您的應用程序更改爲其他Rails版本所期望的結構。 RailsDiff是一個很好的資源,可以看到使用不同版本的Rails生成的應用程序之間的差異。

你有兩個選擇:

  1. 採用版本或
  2. 之間的變化重新生成與所需版本的新應用。