Tech Racho エンジニアの「?」を「!」に。
  • 開発

ActiveRecordのモデルに対してto_hashを出来るようにする。

モデルの中身を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

CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。