我正在尝试实现一个名为 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/