【问题标题】:Load Error when requiring 'twitter-text' gem需要“twitter-text”gem 时加载错误
【发布时间】:2012-09-25 08:16:35
【问题描述】:

我正在尝试在我的 Rails 3 应用程序中使用 twitter-text-rb (https://github.com/twitter/twitter-text-rb)。

我使用 bundler 和我的 gemfile 安装了它 - 看似成功 - 但是当我尝试在我的应用程序助手中包含它的自动链接功能时,如下所示:

require 'twitter-text'
module ApplicationHelper
include Twitter::Autolink
end

当我尝试加载应用程序的根目录时,我在浏览器中收到此错误:

路由错误 未初始化的常量 Twitter::Autolink 尝试运行 rake 路由 有关可用路线的更多信息。

我在Ruby Gems manual 中关注了这些故障排除问题,但这似乎不是他们在“为什么需要'some_gem' 失败?”下提出的两个可能问题中的任何一个。

这是我使用终端从应用程序的根目录按照他们的说明进行操作时的摘录:

manager$ gem list twitter-text

*** LOCAL GEMS ***

twitter-text (1.5.0)
manager$ ruby -rubygems -e 'require "twitter-text"'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require': no such file to load -- twitter-text (LoadError)
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require'
    from -e:1
manager$ gem contents --no-prefix twitter-text | grep lib
lib/twitter-text.rb
lib/twitter-text/autolink.rb
lib/twitter-text/deprecation.rb
lib/twitter-text/extractor.rb
lib/twitter-text/hit_highlighter.rb
lib/twitter-text/regex.rb
lib/twitter-text/rewriter.rb
lib/twitter-text/unicode.rb
lib/twitter-text/validation.rb
manager$ ruby -rubygems -e 'require "twitter-text"'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require': no such file to load -- twitter-text (LoadError)
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require'
    from -e:1
manager$ which ruby
/usr/bin/ruby
manager$ gem env | grep 'RUBY EXECUTABLE'
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

我在应用程序中使用了一些其他的 gem,之前没有遇到过类似的问题。

我不知道下一步该尝试什么。我对 Ruby/Rails 很陌生(以及一般的编程!)所以任何帮助将不胜感激。

谢谢,

马特

【问题讨论】:

  • 将它添加到您的 gemfile 应该会自动要求它,除非您在 Gemfile 中使用 require: false。你用的是 rvm 还是什么?
  • @Beerlington - 感谢您的建议。我没有意识到 require 是不必要的。但是,我仍然认为查找或加载 gem 存在问题。当我从 ApplicationHelper 中删除“require 'twitter-text'”,但在其中保留“include Twitter::Autolink”时,我收到此错误:“路由错误未初始化常量 Twitter::Autolink 尝试运行 rake 路由以获取更多信息可用的路线。”当我对我使用的其他 gem(如 Twitter、kaminari 和friendly_id)进行上述 RubyGems 手册中描述的测试时,我没有收到类似的错误。还有其他想法吗?
  • 您使用的是 rvm gem 集吗?如果你运行 'bundle show' 会列出 twitter-text 吗?
  • 不,我没有使用 rvm。是的,它在我运行“捆绑秀”时列出。感谢您的跟进。

标签: ruby-on-rails rubygems


【解决方案1】:

我现在已经让这个 gem 工作并删除了加载错误(虽然我不能确定什么是正确的)。

我安装了 RVM 并使用 Ruby 1.9.2 和 Rails 3.2.3 试用了我的应用程序和 twitter_gem。我之前使用的是系统默认的 Ruby - 1.8.7 - 和 Rails 3.2.3。 gem 已正确加载并且运行良好。

因此,问题似乎在于在早期版本的 Ruby 上运行的 gem 或 RVM 的 gemset 帮助应用程序正确加载了 gem。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2013-12-16
    • 2012-06-12
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多