新的rails应用程序出现问题

时间:2016-07-04 17:39:52

标签: ruby-on-rails

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

...第一

/config/environments/development.rb:53:in `block in <top (required)>':
  uninitialized constant ActiveSupport::EventedFileUpdateChecker (NameError)
然后,一旦我发表评论......

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

一旦被注释掉......

 /config/initializers/new_framework_defaults.rb:21:in `<top (required)>':
  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)

我可以在谷歌上发现的一切表明这些是与Rails 5相关的东西。我不确定如何绕过它们,或者如何创建仍然特定于4.2.6的应用程序。

2 个答案:

答案 0 :(得分:5)

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

这样做之后你可能会得到:
ActionView :: Template ::错误(无法找到文件&#39; ation_cable&#39;类型&#39; application / javascript&#39;

然后在您的cable.js文件中删除=来自// = require action_cable。

答案 1 :(得分:2)

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

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

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

您可以通过将rails -v(在您调用rails new的目录中)的输出与.railsrc或{{{{}}中的内容进行比较来验证这是您的问题。 1}}。如果它们不同,可以轻松解决:

重新创建您的Rails应用,在命令行调用中从template.rb.railsrc指定相同的Rails版本:
template.rb