Rails4からActiveResourceはコアライブラリから除外され、単独のgemに切り出されたようですが、Rails3にバンドルされているActiveResourceもかなり以前から既にメンテナンスされていないようです。
rails/rails:3-2-stableのActiveResource
https://github.com/rails/rails/tree/3-2-stable/activeresource/lib/active_resource
version.rbのバージョン番号以外は1年以上コードのメンテナンスがされていません。
GemのActiveResource
https://github.com/rails/activeresource/tree/master/lib/active_resource
こちらは頻繁に更新されています。
ActiveResource::Base.include_root_in_jsonの問題
これに気がついたのは「ActiveResource::Base.include_root_in_json = false」という設定をしたのに反映されない問題を調査していたときでした。
githubのissueを見ると確かに修正されているはずなのですが、rails本家のactiveresourceには反映されていませんでした。
Rails3を使いつつ、activeresourceだけ単独gemを使いたかったのですが、Gemfileに
gem 'activeresource', :require => 'active_resource'
と書いてもrails3にバンドルされているほうが読み込まれているみたいで使えませんでした。(だれかいい方法があったら教えてください・・・)
しょうがないので、config/initializersの下にこんなパッチファイル置いてしのぎました。
module ActiveResource
class Base
def to_json(options={})
super(include_root_in_json ? { :root => self.class.element_name }.merge(options) : options)
end
end
end
ActiveResource::Base.include_root_in_json == false