関連タグで絞り込む (2)

タグの絞り込みを解除

hashに関するwhitefox_105のブックマーク (3)

  • model のインスタンスを hash化する - 超自己満足プログラミング

    使う機会はあまり無い気もするが、メモしておく*1 結論から書くと、モデルインスタンス#attributes とするだけ。 model_instance = Model.new attributes_hash = model_instance.attributes # {"attr1" => "val1", "attr2" => "val2", ...} p attributes_hash.class # --> Hash どんなとこで使ったのかというと、 同じ名前のカラムを持っている2つの異なるモデルがあるとする。 そのカラムを一方からもう一方にコピーしたいときに、どうやるのがスマートかな、という話し。 # name, attr1 を持つモデルA と name, attr1, attr2 を持つモデルB があったとする model_a = ModelA.first model_b = Mo

    model のインスタンスを hash化する - 超自己満足プログラミング
  • Rubyでハッシュを別の形式のハッシュに変換する方法 - give IT a try

    2012.4.6 追記 えーっと、このエントリを公開したらコメントにて最強の変換方法を教えていただきました。 p Hash[initial_hash.map { |k,v| [@convert_table[k], v] }] わざわざメソッド化しなくても、これなら一撃必殺ですね。 keyesberryさん、どうもありがとうございました!! ・・・というわけで、ここから下はあまり意味のないエントリです。 まあ、ヒマつぶしにでもどうぞ(^^; はじめに 先日発見したRubyのハッシュに関するイディオムの紹介です。 タイトルにもある通り、あるハッシュを別の形式のハッシュに変換する場合のイディオムです。 例題 例えばこんな例題を考えてみます。 initial_hash = { 'Red' => '#ff0000', 'Green' => '#00ff00', 'Blue' => '#0000ff'

    Rubyでハッシュを別の形式のハッシュに変換する方法 - give IT a try
  • ActiveSupportのHash拡張 - satake7’s memo

    認証系のソースを読んでいると『options.reverse_merge! :title => ip_addr』というのが出てきて、こんなの Rubyにあったっけと思って調べたら、やっぱ Rubyにはなくて ActiveSupportのクラス拡張でした。せっかく調べたのでまとめ。 Hash#reverse_merge, Hash#reverse_merge! Hash#merge(こちらは Rubyに元々あるメソッド)の逆。mergeはキーが重複する場合、値を置き換えるが、reverse_mergeはキーが重複する場合、値を置き換えない。 用途としてこれは便利だとパッと思いつくものはないんだけど、強いてあげれば、初期値のセット(2回目以降の値はセットしない)とか、デフォルト値のセット(値を書き換えない)くらいかな。 options = { :a => 1, :b => 2, :c => 3

    ActiveSupportのHash拡張 - satake7’s memo
  • 1