Rubyってすげい

  def getUser( typeId )
    result = users.find( :first, :conditions => ["type_id = ?", typeId] )
    if result == nil
      result = User.new()
      result.type_id = typeId
    end
    return result
  end

UserというモデルのデータがDBに存在しなかったら作っちまえ、という乱暴なメソッド。まずはJava風に書いたんだけど、もっと短く書けることに気付いた。

  def getUser( typeId )
    return users.find( :first, :conditions => ["type_id = ?", typeId] ) ||
        User.new( :type_id => typeId )
  end

ああ、もう大好き。