【问题标题】:Rails 3 runner not detecting JSON gem?Rails 3 runner 没有检测到 JSON gem?
【发布时间】:2011-06-13 18:19:03
【问题描述】:

我正在尝试创建 Ruby 脚本以在我的 Rails 3 环境中运行。

但是,每当我使用 Rails Runner 运行此 ruby​​script 时,都会收到以下错误:

require 'rubygems'
require 'json'

@payload = {
"message" => "helloworld",
"station" => {"id"=>12345}
}.to_json

puts @payload

错误:

/usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:212:in `require': no such file to load -- json (LoadError)
 from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:212:in `require'
 from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:198:in `load_dependency'
 from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:554:in `new_constants_in'
 from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:198:in `load_dependency'
 from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:212:in `require'
 from createflags.rb:2
 from /usr/lib/ruby/gems/1.8/gems/railties-3.0.0.beta4/lib/rails/commands.rb:39:in `eval'
 from /usr/lib/ruby/gems/1.8/gems/railties-3.0.0.beta4/lib/rails/commands/runner.rb:47
 from /usr/lib/ruby/gems/1.8/gems/railties-3.0.0.beta4/lib/rails/commands.rb:39:in `require'
 from /usr/lib/ruby/gems/1.8/gems/railties-3.0.0.beta4/lib/rails/commands.rb:39
 from script/rails:6:in `require'
 from script/rails:6

谁能告诉我我能做些什么来解决这个问题?

【问题讨论】:

  • gem 列表正确显示:json (1.4.6, 1.4.3) & json_pure (1.4.6, 1.4.3)。该脚本使用“ruby scriptName.rb”可以正常运行,但不能使用“rails runner script.rb”

标签: ruby json ruby-on-rails-3 gem runner


【解决方案1】:

我并不完全熟悉 Bundler 的内部结构,但可能是它不允许 requireing 其他不在 Gemfile 中的 gem。也许添加gem 'json' 会解决这个问题。

当然,ActiveSupport 有自己的 JSON 模块,所以应该不需要再引入另一个 gem。

【讨论】:

    【解决方案2】:

    去掉 require "json" 然后试试。我相信 ActiveSupport 已经内置了 to_json。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2014-06-07
      • 1970-01-01
      • 2011-03-08
      • 2020-12-12
      • 2012-04-28
      • 2017-07-31
      相关资源
      最近更新 更多