自分用家計簿サイトを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に書くのが主流っぽいけど,どれもこれも一長一短に見える.
誰か,「初期データはこの方法で管理汁!」ってアドバイスがあったら教えてください.
市況の煽りもあって(?),個人的に家計簿サービスを作っていて,
まぁ,いわゆる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らしくない.
絶対,楽に解決できる方法があると思うんだよな.
Just idea.
家計簿ってお金が動いた後に記そうとするから面倒なんだ.
動く前に書く,書かないと動かせない仕組みが欲しい.
たとえば,携帯電話で家計簿をつけないと絶対に開かない財布.
しかも記入額以上は取り出せない仕様.
超不便.
その不便さが節約につながる!!
もちろん記入漏れも無くなる!!
# クレジット決済や固定出費は漏れる可能性があるけど.
続きを読む…
散財.comは入力項目が多すぎて煩雑で挫折しそうな予感がした.
via: b – log » 家計簿
予想通り,散財.comは挫折した…
入力項目多すぎ!!
カテゴリなんて決まらんこともあろうよ.
連続入力も面倒.
店舗名を入力させるなら買い物ごとに一気に入力させてよ.
補完辞書もいまいち.
IMEの学習機能の方が優秀だった.
よし,家計簿NAGAREと主婦@家計簿を頑張ろう.
不況のあおりを受け,当社でも原則として残業代が出ないことになりました…
商社の研究開発部門一年目は,手取りが15万円を割る.
# 今は会社寮で3万円/月しかかからないから良いものの,これじゃ都内で賃貸生活はできないッス.
と言うことで,支出管理が重要だと改めて認識.
家計簿をつけねば.
測定なくして改善なし.
# Engineeringの基本ですね.
で,一日の半分を会社で過ごすサラリーマンとしては家でも会社でもつけれる家計簿が良い.
Webだ.Web家計簿しかあるまい.
どれがいいかわからないが,3つ同時に使ってみることにした.
まずdropdbさんが作った有名な散財.com.
しかし…
既にメールにてご連絡が行っているかと思いますが、本日より、散財.comの運営会社が、株式会社インテージに変更となりました。
といいましても、サービスはこれまで通りですので、みなさんは安心してご利用ください^^
via: 運営会社が変更となりました - 開発スタッフブログ
ほんとに”これまで通り”なんだよね.
開発者blogも止まってるし.
斬新さこそ散財.comのおもしろみだと思ったのに.
そういえば…
やめました!26歳という誕生日が近づいて
キャピポ☆とした日記はやめようとおもってやめたのです。
via: dropdbさんってはてなやめたの? – いつの間にか27歳日記
そのキャピポとした日記が結構好きだったんだぜ…
続きを読む…