ITコンサルの日常

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

「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でも普通に出来ました。