アーカイブ

‘bookkeeping’ タグのついている投稿

Railsで初期データ登録

2009 年 5 月 15 日 コメントはありません

自分用家計簿サイトをRails 2.3.2で構築しました.
今,友人や同期にClosed Beta Testしてもらっています.

ところで,Railsで初期データをどう扱うべきかという議論.
家計簿で言えば,費用項目名(食費,交通費,交際費…etc.)なんかはユーザが使う前に予め登録されてると便利.
いろんな方法が考えられるんだけど,最もRailsっぽいやり方はなんだろう?と.
# Rails開発のコツは,「できるかぎりRailsっぽく作ろうとすること」だと気づいた.
 すなわちDRYに,CoCに,楽しようという気持ちを忘れないことだ.
 これを守っている(= Railsに乗っている)間は本当に気持ちよく開発できる.

最初,以下の記事を読んでmigrationファイルの中にHoge.create :foo => ‘bar’とか書いていた.

テーブル定義以外にも、普通に ActiveRecord を使うときのように

User.create :name => ‘admin’, :password => ‘admin’

と書いて、テーブル内にデータを挿入することもできます。

via: pylori*style wiki – MigrationによるDB管理

ところが,production環境に移行したら,「Hogeという定数が無いよ」的なエラーでmigrateできなくなった.
# なんでdevelopment環境では怒られないんだろう?
いろいろ漁ってみたら,以下の記事を発見し,あまりよろしくない方法だったと気づく.

新しいモデルをUserモデルのbefore_createとかで使おうとしたら、一瞬でrake db:migrateが通らなくなってしまう。。。
今回の場合だと、UserモデルのvalidateでKeywordFilterというモデルを呼び出してフィルタ処理を追加したのだが、KeywordFilterテーブルが生成されるより前に初期Userデータを生成しようとして、rake db:migrateでkeyword_filtersテーブルが無いよ!!っておこられた訳で。。。まぁそら無いわな。

via: migrationで初期データを生成するのは辞めた方がよい。 – RAILS PRESS

結局,アカウントに紐付いた初期データはアカウントのController#create中で登録することにした.
アプリケーション全体で使うような初期データはデータを登録するだけのmigrationファイルを作った.
# ちなみに,上記の問題に限るならば,development環境ではmigrationできることを利用して,
 database.ymlでproduction環境のDBも開発用と共用してしまうという方法もあるらしい.

他に,fixtureを使う手もある.
デプロイ時にスクリプトでSQL文を発行しまくるという知人もいた.
boot.rbとかinitializerあたりに書くこともできそうだ.

んー.rakeに書くのが主流っぽいけど,どれもこれも一長一短に見える.
誰か,「初期データはこの方法で管理汁!」ってアドバイスがあったら教えてください.

カテゴリー: Uncategorized タグ: , , ,

before_filter :login_requiredでテスト失敗

2009 年 4 月 17 日 コメントはありません

市況の煽りもあって(?),個人的に家計簿サービスを作っていて,
まぁ,いわゆるCRUDサービスだし,Railsで良いかと思って,
かと言って,ただRailsしてもつまらんし,現在最新の2.3.2で行こうと.
以前,会社で資産管理システム作って以来だから,全然わからん.

で.基本的な入出金入力とか一覧はできて,
そろそろ自分でもソースが把握しきれなくなりそうだったので,
テストケースを導入.
ところが,Restful Authenticationで困ってしまった.

# GET /cash_flows/1
# GET /cash_flows/1.xml
def show
  @cash_flow = CashFlow.find_by_id_and_user_id(params[:id], current_user.id)
    unless @cash_flow
      flash[:notice] = "You don't have permission to show #" + params[:id] + "!"
      redirect_to cash_flows_url
      return false
    end

とかやっている場所で,全部エラー.
そりゃそうだ.
だって,

class CashFlowsController < ApplicationController
  before_filter :login_required
# 中略
end

ってやってるんだもんよ.
こういう時,どうすりゃいいんだろ.
ごり押しで解決できないことはないけど,そういうのRailsらしくない.
絶対,楽に解決できる方法があると思うんだよな.

家計簿連動財布

2009 年 4 月 1 日 コメントはありません

Just idea.
家計簿ってお金が動いた後に記そうとするから面倒なんだ.
動く前に書く,書かないと動かせない仕組みが欲しい.
たとえば,携帯電話で家計簿をつけないと絶対に開かない財布.
しかも記入額以上は取り出せない仕様.
超不便.
その不便さが節約につながる!!
もちろん記入漏れも無くなる!!
# クレジット決済や固定出費は漏れる可能性があるけど.
続きを読む…

続・家計簿

2009 年 3 月 27 日 コメントはありません

散財.comは入力項目が多すぎて煩雑で挫折しそうな予感がした.

via: b – log » 家計簿

予想通り,散財.comは挫折した…

入力項目多すぎ!!
カテゴリなんて決まらんこともあろうよ.
連続入力も面倒.
店舗名を入力させるなら買い物ごとに一気に入力させてよ.
補完辞書もいまいち.
IMEの学習機能の方が優秀だった.

よし,家計簿NAGARE主婦@家計簿を頑張ろう.

カテゴリー: Uncategorized タグ: , , ,

家計簿

2009 年 3 月 25 日 コメント 2 件

不況のあおりを受け,当社でも原則として残業代が出ないことになりました…
商社の研究開発部門一年目は,手取りが15万円を割る.
# 今は会社寮で3万円/月しかかからないから良いものの,これじゃ都内で賃貸生活はできないッス.

と言うことで,支出管理が重要だと改めて認識.
家計簿をつけねば.
測定なくして改善なし.
# Engineeringの基本ですね.
で,一日の半分を会社で過ごすサラリーマンとしては家でも会社でもつけれる家計簿が良い.
Webだ.Web家計簿しかあるまい.

どれがいいかわからないが,3つ同時に使ってみることにした.
まずdropdbさんが作った有名な散財.com
しかし…

既にメールにてご連絡が行っているかと思いますが、本日より、散財.comの運営会社が、株式会社インテージに変更となりました。
といいましても、サービスはこれまで通りですので、みなさんは安心してご利用ください^^

via: 運営会社が変更となりました - 開発スタッフブログ

ほんとに”これまで通り”なんだよね.
開発者blogも止まってるし.
斬新さこそ散財.comのおもしろみだと思ったのに.
そういえば…

やめました!26歳という誕生日が近づいて
キャピポ☆とした日記はやめようとおもってやめたのです。

via: dropdbさんってはてなやめたの? – いつの間にか27歳日記

そのキャピポとした日記が結構好きだったんだぜ…
続きを読む…