麻烦新的rails应用程序

我刚刚创建了一个新的rails应用程序(在CL上,使用rails new),我在4.2.6,但似乎在我可以对应用程序执行任何操作之前我遇到了错误。

第一…

/config/environments/development.rb:53:in `block in ': uninitialized constant ActiveSupport::EventedFileUpdateChecker (NameError) 

一旦我评论出来……

 /config/initializers/new_framework_defaults.rb:15:in `': undefined method `to_time_preserves_timezone=' for ActiveSupport:Module (NoMethodError) 

一旦被评论出来……

  /config/initializers/new_framework_defaults.rb:21:in `': undefined method `halt_callback_chains_on_return_false=' for ActiveSupport:Module (NoMethodError) 

最后…

 .gem/ruby/2.2.3/gems/actionmailer-4.2.5/lib/action_mailer/base.rb:569:in `method_missing': undefined method `perform_caching=' for ActionMailer::Base:Class (NoMethodError) 

我可以在Google上看到的所有内容都表明这些与Rails 5有关。 我不确定如何解决它们,或者如何创建仍然特定于4.2.6的应用程序。

如果你仍想使用Rails 5注释development.rb文件中的以下行: config.action_mailer.perform_caching = false

在这之后你可能会得到:
ActionView :: Template :: Error(无法找到类型为’application / javascript’的文件’ation_cable’

然后在cable.js文件中删除= from // = require action_cable。

tl; dr:重新创建您的Rails项目,提供特定的Rails版本。

详细说明Peter的答案:通常会出现此错误,因为您安装的Rails版本比.railsrctemplate.rb调用的版本更新。

如果是这种情况,当您运行rails new my_new_app ,默认情况下会使用最新版本来处理该过程的早期步骤,但是一旦安装了模板/ railsrc版本,后面的步骤就会使用此版本。 这会导致兼容性问题。

您可以通过将rails -v (在您调用rails new的目录中)的输出与.railsrctemplate.rb进行比较来validation这是您的问题。 如果它们不同,则可以轻松解决:

重新创建您的Rails应用程序,在命令行调用中从.railsrctemplate.rb指定相同的Rails版本:
rails _4.2.5.1_ new my_new_app