Hatena::ブログ(Diary)

tkrdの日記 (rails や ubuntu のことなど)

株式会社オイアクス (東京都港区芝大門) で社長をしています。

2014-09-09

Rails: モデルオブジェクトの特定の属性を選んで to_hash/to_json

10:42

今、ある Rails アプリケーションの User モデルクラスに id, name, email, created_at, updated_at という5つの属性があるとします。id = 1 の User オブジェクトに関して、name と email だけの値をハッシュまたはJSON文字列として返すにはどうすればいいでしょうか。

答え:

(1) ハッシュ

u = User.find(1)
u.attributes.slice('name', 'email')

(2) JSON

u = User.find(1)
u.attributes.slice('name', 'email').to_json


u.attributes.slice('name', 'email') の代わりに u.attributes.except('id', 'created_at', 'updated_at') としても構いません。多くの属性の中から少数の属性だけを省きたい場合は、こちらの方が便利です。

kuboonkuboon 2014/09/26 09:39 ハッシュ化 u.as_json(only: [:name, :email])
JSON化 u.to_json(only: [:name, :email])

tkrdtkrd 2014/09/26 10:33 @kuboon ありがとうございます。

トラックバック - http://d.hatena.ne.jp/tkrd/20140909/1410226928
リンク元
Connection: close