ruby-on-rails - 来自 ruby​​ gem 的类上未初始化的常量

标签 ruby-on-rails ruby rubygems wrapper

我正在尝试实现一个名为 stanfordparser 的 gem,它可以在这里找到:http://stanfordparser.rubyforge.org/

它是 java 自然语言解析器的 ruby​​ 包装器

我在 Windows 7 机器上使用 ruby​​ on rails/jruby 在 netbeans 中进行开发。我的网络应用程序在其他方面运行良好,但当我尝试添加解析器包装器时它会中断。

这是导致问题的代码:

gem 'stanfordparser'

def show
 parser = StanfordParser::LexicalizedParser.new
 @words = parser.apply("This is a sentence.")
end

这是在任务 Controller 中

当我转到 tasks/show 时(如果我删除这段代码,工作正常)我得到以下错误

uninitialized constant TasksController::StanfordParser

我已经确保 gem 安装在 netbeans 中

我对 ruby​​ on rails 很陌生,而且是自学,所以这可能是显而易见的事情

谢谢!

编辑:我检查了我的 glassfish 服务器日志,它说

SEVERE: Missing these required gems:
  stanfordparser

这很奇怪,因为我已经使用 netbeans 安装了 gem,我已经完成了 rake gems:install 并且 netbeans 说 gem 已安装。我已经检查了 netbeans gems 文件夹并且 gem 安装在那里。

编辑 2:

因此,经过大量研究和头脑 Storm 后,我决定通过尝试使用 jruby 来实现 java 类来简化事情,现在我需要弄清楚如何导入 stanfordparser java 类(那里至少有 50 个),我想我需要将所有类压缩到一个 jar 中,以便 jruby 可以加载它。或许。

最佳答案

如果您使用的是 Rails 3,则需要在项目根目录中的 Bundler 的 Gemfile 中指定 gem 'stanfordparser' 语句。否则,对于 Rails 2.x,您需要在 config/environment.rb 中添加一个 config.gem 'stanfordparser' 语句。

关于ruby-on-rails - 来自 ruby​​ gem 的类上未初始化的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3153123/

相关文章:

ruby - Rails Sinatra 应用程序未加载 Gem。我把它们放错地方了吗?

mysql - rails : Scopes to find records where previous years of the same customer records exist

ruby-on-rails - Rails SECRET_KEY_BASE 在本地生产环境中返回 nil

ruby-on-rails - 使用 rails 生成器修改文件

ruby - 在 Ruby 中请求类常量值返回此类中的所有定义值

ruby-on-rails - Ruby/Rails 多线程 - 并行运行语句(最好使用 Parallel Gem)

ruby-on-rails - Docker无法在Travis CI中与Postgresql建立连接

ruby-on-rails - 如何使用正则表达式删除 memcached 中的键(使用 Dalli+RoR)。

ruby - Ruby 中正则表达式后的字母

ruby - 在 irb 中发现的 Gem,而不是在 Ruby 中