2017-06-21 77 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. 之间的变化重新生成与所需版本的新应用。