Rails3アプリで読みやすさの宝石を使用します。ルビーコンソールでは正常に動作しますが、アプリ内のgithubページhttp://github.com/sspinc/readabilityでアドバイスされているように使用できません。
ルビーコンソールの場合:
> 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)
レールコンソール:
> 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は、RubyでjavascriptとDOMを処理するために読みやすさが使用する必要なgem(harmony、johnson、envjsなど)を読み込めなかったと思われます。
だから私の推測では、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'
ハーモニー、ジョンソン、envjsを指定するために、読みやすさに:requireオプションを追加してみました。'bundle install'をエラーなしで再実行しましたが、それでも同じエラーが発生します。
また、config / application.rbをチェックして、Gemfile内のすべてのgemを要求しました。この行で
Bundler.require(:default, Rails.env) if defined?(Bundler)
では、質問に戻りましょう。Rails3.0.xで読みやすさをどのように使用できますか?私は何か見落としてますか?それが重要な場合、私はMacOS10.6.5を使用しています。
ありがとうございました