3

Rails 3環境で実行するRubyスクリプトを作成しようとしています。

ただし、この ruby​​script をRails Runnerで実行すると、次のエラーが発生します。

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

誰かがこれを修正するために何ができるか教えてもらえますか?

4

2 に答える 2

2

私は Bundler の内部構造に完全に精通しているわけではありませrequireんが、Gemfile にない他の gem を許可していない可能性があります。たぶん、追加gem 'json'するとこれが処理されるでしょう。

もちろん、ActiveSupport には独自の JSON モジュールがあるため、別の gem を取得する必要はありません。

于 2011-01-22T20:29:40.437 に答える
0

require "json" を削除してから試してください。ActiveSupport には既に to_json が組み込まれていると思います。

于 2011-01-22T20:23:03.790 に答える