Railsの項目ごとの初期値はdefault_value_forが良さそう

2013-02-18

初期値の設定

皆さんは「初期データ」ってどのように設定していますか。
「初期値って、そりゃDB側に設定するでしょう」という声も聞こえてきますが「親レコードの指定された値」だとか、更にそれを計算した値、となるとDB側で対応するのが正解とは言い難くなってきます。

そこで、私はよくbefore_filter :set_defaultなどと書いていました。 しかし、最近にしてやっとdefault_value_forというGemがあることを知りまして目鱗しております。

FooBarWidget / defaultvaluefor

class User < ActiveRecord::Base
  default_value_for :name, "(no name)"
  default_value_for :last_seen do
    Time.now
  end
end

u = User.new
u.name       # => "(no name)"
u.last_seen  # => Mon Sep 22 17:28:38 +0200 2008

初期データの設定まわりは、不具合になりやすい割に、気づきヅライという問題がありますね。 そこをこのdefault_value_forで解決できるととても嬉しいなぁと思いました。

  • このエントリーをはてなブックマークに追加
comments powered by Disqus

About Me

身近な問題をみつけて、それを解決するためのサービスをつくっている。

SFA(営業支援ソフト)会社のJavaエンジニアだった頃に、新サービス開発の依頼を受けてRubyエンジニアとなる。

P4D デザイナー向けプログラム部デザインビギナーズというデザイン勉強会に参加し、デザインの面白さに触れたりしている。

もっと詳しく