モデルの中身をJSONとして出力する前段階として、モデルの中身をハッシュとして扱いたかったのですが、標準でハッシュに変換する方法が見つかりませんでした。
そのため、to_hash関数を自分で追加することにしました。
モデルクラスに以下のコードを追加:
def to_hash
ActiveSupport::JSON.decode(self.to_json)
end
これで、 「モデルオブジェクト.to_hash」 でいつでもハッシュ化できます。
ただこれだと、関連しているテーブルを追いかけてくれるわけではないので、まだ少し不便だったりもします。
もっと良い方法もあるかもしれません。
追記 (12/03/02):
こっちのほうが良さそうです。(情報提供ありがとうございます!)
def to_hash
Hash[*self.map{ |i| [i.id, i]}.flatten]
end