開発
serialize
hanyu
会津若松はだいぶ涼しくなって過ごしやすくなって来ました。皆様如何がお過ごしでしょうか。
さて先日railsを使っていて、ややこしいことをしないで{Array, Hash}をDBに入れられないかなーと思って調べていたら、ActiveRecordのserializeを使うとDBにRubyのオブジェクトを入れられるということを知りました。自前で用意しないといけないかなあと思っていたので驚きです。もっとも僕程度がほしいなと思う機能は大抵偉大な先人が実装してくださっているのですが。
肝心のシリアライズですが、どうもtext型なカラムを作って下記のようにすると勝手にYAMLにして保存してくれるようです。
# app/models/foo.rb
class Foo < ActiveRecord::Base
serialize :bar
end
foo = Foo.create
foo.bar = [“foo”, ” bar”]
foo.bar = { “foo” => “bar”}
お手軽に保存することはできたのですが、仕組み的に色々とデメリットがあるので使い所が難しいのではないかなと思います。今回は手元でとりあえず動けばいいものだったので、使ってみました。と、調べて使ってみたところまではいいのですが、おそらくしばらくは使わないので忘れないうちに書き留めておこう!とちょうどブログの当番が回ってきたのでこちらに書いてしまうことにしました。
担当:羽生 (rails界隈の時代の移り変わりの速さが恐ろしい…)