私はこの問題に困惑しています。
ActiveSupport::JSON
to_json
さまざまなコア オブジェクトで定義されており、JSON gem も同様です。ただし、実装は同じではありません。ActiveSupport バージョンは引数を取り、JSON gem バージョンは引数を取りません。
JSON gem を必要とする gem をインストールしましたが、アプリが壊れました。問題はto_json
、オブジェクトのリストを返すコントローラーで使用していることですが、返される属性を制御したいということです。
システムのどこかでコードを実行するrequire 'json'
と、次のエラー メッセージが表示されます。
TypeError: wrong argument type Hash (expected Data)
オンラインで読んだことをいくつか試して修正しましたが、何も機能しませんでした。ActiveSupport::JSON.decode
代わりに使用するように宝石を書き直しましたJSON.parse
。
これは機能しますが、持続可能ではありません... JSON gem を必要とする gem を使用するたびに gem をフォークすることはできません。
更新:この問題の最善の解決策は、Rails 2.3 以降にアップグレードすることです。これにより、この問題は修正されました。