麻烦新的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版本比.railsrc
或template.rb
调用的版本更新。
如果是这种情况,当您运行rails new my_new_app
,默认情况下会使用最新版本来处理该过程的早期步骤,但是一旦安装了模板/ railsrc版本,后面的步骤就会使用此版本。 这会导致兼容性问题。
您可以通过将rails -v
(在您调用rails new
的目录中)的输出与.railsrc
或template.rb
进行比较来validation这是您的问题。 如果它们不同,则可以轻松解决:
重新创建您的Rails应用程序,在命令行调用中从.railsrc
或template.rb
指定相同的Rails版本:
rails _4.2.5.1_ new my_new_app