簡體   English   中英

為 ActionDispatch::Assertions:Module (NoMethodError) 調用私有方法“include”

[英]private method `include' called for ActionDispatch::Assertions:Module (NoMethodError)

我嘗試運行舊的 Rails 應用程序,但在訪問主頁時出現此錯誤:我正在使用 ruby 2.0.0p648。

private method `include' called for ActionDispatch::Assertions:Module (NoMethodError)
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/turbolinks-5.2.1/lib/turbolinks.rb:25:in `block (2 levels) in <class:Engine>'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/activesupport-4.2.11.1/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/activesupport-4.2.11.1/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/activesupport-4.2.11.1/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/activesupport-4.2.11.1/lib/active_support/lazy_load_hooks.rb:44:in `each'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/activesupport-4.2.11.1/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/actionpack-4.2.11.1/lib/action_controller/base.rb:266:in `<class:Base>'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/actionpack-4.2.11.1/lib/action_controller/base.rb:164:in `<module:ActionController>'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/actionpack-4.2.11.1/lib/action_controller/base.rb:5:in `<top (required)>'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/actionpack-4.2.11.1/lib/action_dispatch/middleware/static.rb:69:in `ext'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/actionpack-4.2.11.1/lib/action_dispatch/middleware/static.rb:27:in `match?'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/actionpack-4.2.11.1/lib/action_dispatch/middleware/static.rb:114:in `call'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/rack-1.6.13/lib/rack/sendfile.rb:113:in `call'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/railties-4.2.11.1/lib/rails/engine.rb:518:in `call'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/railties-4.2.11.1/lib/rails/application.rb:165:in `call'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/rack-1.6.13/lib/rack/content_length.rb:15:in `call'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/puma-3.11.4/lib/puma/configuration.rb:225:in `call'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/puma-3.11.4/lib/puma/server.rb:632:in `handle_request'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/puma-3.11.4/lib/puma/server.rb:446:in `process_client'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/puma-3.11.4/lib/puma/server.rb:306:in `block in run'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/puma-3.11.4/lib/puma/thread_pool.rb:120:in `call'
/home/armano/.rbenv/versions/2.0.0-p648/lib/ruby/gems/2.0.0/gems/puma-3.11.4/lib/puma/thread_pool.rb:120:in `block in spawn_thread'

這是我的 Gemfile:

source 'https://rubygems.org'

gem 'rails', '~> 4.0'
gem 'sqlite3', '~> 4.0'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'

# Use jquery as the JavaScript library
gem 'jquery-rails'
gem 'turbolinks'

gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc

group :development, :test do
  gem 'byebug'
end

group :development do
  gem 'web-console', '~> 2.0'
  gem 'spring'
end

gem 'puma', '~> 3.11'

這里有人遇到這個錯誤嗎? 你怎么修好它的? 謝謝

對於大多數 gem,您已經在 Gemfile 中指定了一個版本,但沒有為 turbolinks 指定一個版本。 如果您也沒有 Gemfile.lock,這將使該捆綁包安裝 RubyGems 中可用的最后一個版本,目前是 5.2.1(根據錯誤消息,這是您正在使用的版本)。 我認為當前版本的 turbolinks 不適用於 Ruby 2.0,因為它真的很舊,甚至不再維護。 所以,我建議您使用與上次運行時相同的 turboliinks 版本。 如果你不知道我會用舊版本嘗試哪一個。 檢查版本列表: https://rubygems.org/gems/turbolinks/versions

或者,您可以將 Ruby 更新到較新的版本。 但我會逐步這樣做,因為這可能會破壞其他事情。 無論如何,您可能想要更新 Ruby,因為我已經提到它是不接收安全更新的舊版本。

Ruby on Rails 版本 4.0 在2013 年中至 2014 年底之間是最新的。 在那段時間里,turbolinks 的版本在 1.3-2.5 范圍內

我會將 turbolinks 降級到其最新的 1.x 版本

# in the Gemfile
gem 'turbolinks', '~> 1.3'

bundle install

然后再試一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM