【发布时间】:2012-01-26 19:26:59
【问题描述】:
我已通过gem 'yajl-ruby', '~> 1.1.0' 在我的Gemfile 中包含yajl gem,但是在我的商店控制器中调用parser = Yajl::Parser.new 时,我收到错误uninitialized constant StoreController::Yajl
如果我在控制器的开头执行require 'yajl',一切都很好,但我的印象是,只需将gem 包含在gem 文件中,应用程序中的控制器就应该可以使用gem。
【问题讨论】:
-
您
require是在控制器类内部还是在文件顶部?尝试使用完全合格的参考:parser = ::Yajl::Parser.new -
我确实需要在控制器类中使用它,它工作正常,但我的印象是,将它包含在
Gemfile中就足以使其可用于 Rails 应用程序中的所有类?跨度> -
是的,
Bundler应该为您处理好它。您的config/application.rb中有Bundler.require电话吗?你跑bundle install了吗? -
有一个电话
if defined?(Bundler)¬ # If you precompile assets before deploying to production, use this line¬ Bundler.require(*Rails.groups(:assets => %w(development test)))¬ # If you want your assets lazily compiled in production, use this line¬ # Bundler.require(:default, :assets, Rails.env)¬ end¬我已经运行了bundle install 但无济于事。
标签: ruby yajl ruby-on-rails-3.2