我尝试从Rails 4.1.9升级到Rails 4.2,当我尝试运行控制台或服务器时,我收到以下错误。有什么想法吗?我认为html-scanner gem包含在Action :: View
中gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require': cannot load such file -- action_view/vendor/html-scanner (LoadError)
答案 0 :(得分:8)
gem 'prototype-rails', github: 'rails/prototype-rails', branch: '4.2'
请注意,从Rails 5开始,将不再支持prototype-rails gem,因此现在可以像删除此依赖项一样好。
答案 1 :(得分:3)
我相信他们在根据rails-html-sanitizer
切换到upgrade guide时从4.2中删除了html-scanner但是你似乎可以使用rails-deprecated_sanitizer
gem到你的Gem文件然后重新包括html-scanner库
gem 'rails-deprecated_sanitizer'
希望这有帮助!
答案 2 :(得分:1)
我在旧项目中也遇到了这个问题。这是捆包机1.17.3 /红宝石2.4 /导轨4.2.11.3,它把我推向高处。
以下令人讨厌的骇客行之有效:
宝石文件:
gem 'rails-deprecated_sanitizer'
gem 'prototype-rails', git: 'https://github.com/rails/prototype-rails.git', branch: '4.2'
但这还不够。然后,我不得不让rails-deprecated_sanitizer出现在宝石想要的地方。
因此,在我的项目中,我创建了lib / action_view / vendor / html-scanner.rb:
require 'rails-deprecated_sanitizer'
require 'rails/deprecated_sanitizer/railtie'
require 'rails/deprecated_sanitizer/html-scanner'
(我想这三个都需要)
这当然取决于lib在您的加载路径中。
这解决了问题,我终于能够重置数据库并启动服务器。