我正在尝试创建 Ruby 脚本以在我的 Rails 3 环境中运行。
但是,每当我使用 Rails Runner 运行此 rubyscript 时,我都会收到此错误:
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
有人可以告诉我如何解决这个问题吗?
最佳答案
我并不完全熟悉 Bundler 的内部结构,但可能是它不允许require
不在 Gemfile 中的其他 gem。也许添加 gem 'json'
会解决这个问题。
当然,ActiveSupport 有自己的 JSON 模块,所以应该不需要再拉入另一个 gem。
关于ruby - Rails 3 runner 没有检测到 JSON gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769556/