gpt4 book ai didi

ruby - 如何在 Rails 3.0.x 上使用可读性 gem?

转载 作者:太空宇宙 更新时间:2023-11-03 16:38:05 24 4
gpt4 key购买 nike

我打算在我的 Rails 3 应用程序上使用可读性 gem。我不能按照 github 页面上的建议使用它 http://github.com/sspinc/readability在应用程序内部,尽管它在 ruby​​ 控制台上运行良好。

在 ruby​​ 控制台上:

> require 'open-uri'
=> true
> require 'readability'
=> true
> doc = Nokogiri::HTML(open('http://google.com'))
=> #<Nokogiri::HTML::Document:0x81345324 name="document"
> doc.to_readable
=> #<Nokogiri::XML::Element:0x813299a8 name="html"
# (expected result without any error)

在 Rails 控制台上:

> doc = Nokogiri::HTML(open('http://google.com'))
=> #<Nokogiri::HTML::Document:0x81c2baec name="document"
# (and so on.. expected result)
> readable = doc.to_readable
SyntaxError: /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/readability-0.1.5/lib/readability/js/readability.js:2: syntax error, unexpected '='
if(typeof console !== 'undefined') {
^
/Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/readability-0.1.5/lib/readability/js/readability.js:2: syntax error, unexpected '{', expecting kTHEN or ':' or '\n' or ';'
/Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/readability-0.1.5/lib/readability/js/readability.js:5: syntax error, unexpected '}', expecting $end
from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/harmony-0.5.6/lib/harmony/page.rb:76:in `load'

我确认这不是 javascript 语法错误。从主动支持错误来看,加载依赖项失败,我怀疑 Rails 未能加载所需的可读性使用的 gem(如 harmony、johnson 和 envjs)来处理 Ruby 中的 javascript 和 DOM。

所以我的猜测是 Gemfile 中可能有问题?这是我当前的 Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.0.3'
gem 'devise', '~> 1.1.5'
gem 'haml', '3.0.24'
gem 'simple_form'
gem 'cancan'
gem 'will_paginate', '~> 3.0.beta'
gem 'feedzirra', :require => [ 'feedzirra' ]
gem 'loofah', '1.0.0.beta.1'
gem 'compass', '~> 0.10.4'
gem 'meta_where', '~> 0.9'
gem 'populator'
gem 'simple-navigation'
gem 'readability'

我尝试在可读性中添加 :require 选项以指定 harmony、johnson 和 envjs;并重新运行“bundle install”,没有任何错误,但我仍然有同样的错误。

我还检查了 config/application.rb 以要求 Gemfile 中的所有 gem。用这条线

Bundler.require(:default, Rails.env) if defined?(Bundler)

所以,回到问题,我如何在 Rails 3.0.x 上使用可读性?我错过了什么?如果重要的话,我使用的是 MacOS 10.6.5。

谢谢

最佳答案

在我的 Mac 上(Rails 3.x,Ruby 1.9.2,我在加载作为依赖项的 johnson gem 时遇到了问题。但是,ruby-readability gem 有效。

关于ruby - 如何在 Rails 3.0.x 上使用可读性 gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com