ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

「τになるまで待って」読了

τになるまで待って (講談社ノベルス)

τになるまで待って (講談社ノベルス)

森博嗣Gシリーズの3巻。
赤柳初朗がMNIだの、佐織宗尊だの、真賀田四季だのを調べだそうといったところから始まるストーリ。
どうも、佐織宗尊もMNIもすでになくなっているらしい。まあ、Vシリーズの時代(+四季 夏)の話だから、そうなのかもなぁ。
どうでもいいですが、登場人物がレギュラー級メンバの方が、それ以外の人より多いっていうのがちょっと驚いた。まあ、場所設定の関係もあるのでしょうが。
3巻は、「笑わない数学者」「月は幽咽のデバイス」に続き、恒例の建物トリックです。うわまた出たって感じです。やっぱりどこか意識してるのかな?
読後感はなんともすっきりしないもので、例の動機なんでどうだっていいじゃん的なノリで終わっちゃってます。まあ、それだけならまだしも、ほんとヒドイよもうって感じ。いいのかこれで?
愚痴っても仕方がないので、次巻に期待です。ほんとに。

「RailsによるアジャイルWebアプリケーション開発」11章まで読了

この章は、ユーザモデルの作成と、ユーザの作成、ログイン、一覧表示、削除などなど一連のユーザ管理システムの構築でした。
最初のころに作ったにっくき(?)adminコントローラが出てきますが、ここはproductsコントローラに読み替えて邁進しました。

というわけで自由課題。

前章のチェックアウトのコードを、2つのアクションではなく、1つのアクションを使うように作りかえてみましょう

checkoutアクションで注文内容を入力し、save_orderアクションで注文確定という流れでしたが、これをcheckoutにまとめるということのようです。
またも軟弱にも答え(http://pragprog.wikidot.com/pt-f-1)を先に見てしまいましたが、params[:order]の有無でどちらのページから来たかを判断できるので、これを元に処理を分岐するということのようです。
もちろん、save_orderアクションを呼んでいるところは、checkoutアクションが呼ばれるように修正します。

データベースに管理者が定義されていないときには、どのようなユーザ名でもログインできるようにしてみましょう。

こんな風にしてみたらうまくいきました。

      	 if User.count == 0
	   user = User.create(:name => params[:name], :password => params[:password], :password_confirmation => params[:password])
	 else
       	   user = User.authenticate(params[:name], params[:password])
	 end

ユーザの件数(usersテーブルの件数)が0の場合はcreateして、それ以外の場合は今までの処理に流れるようにしました。あとはそのまま。

script/consoleを実際に使ってみましょう。

4ページほど前に、管理者がひとり残らずいなくなると・・・の中で、script/consoleを使ってユーザを追加する例が載ってますが、Rails2.0.2でも普通に出来ました。