チェックアウト
今日の作業
チェックアウト機能の実装(続き)
発送機能の実装
今日の作業でわかったこと
今日はRailsによるアジャイルWebアプリケーション開発の本に載っていない
プラグイン(ActiveHeart)をたまたま見つけあったほうがいいなと思いインストールした。
より良いアプリにしていくにはこういった機能をどんどん追加していくことが必要だ。
そのためにはどんどん知識を増やさなければ!
明日やること
発送機能の実装(続き)
ユーザ管理
調べたことのまとめ
ActiveHeart
error_messages_for()についてRuby on Rails入門で調べたら、
そのメソッドに関しての説明ではなくActiveHeartっていうプラグインの紹介があった。
error_messages_for()やARの検証機能で表示されるメッセージを日本語化してくれる。
$ ./script/plugin install http://svn.rails2u.com/public/plugins/trunk/active_heart/
でインストールするだけでOK。
カラム名も日本語化するためにはmodelにset_field_namesでカラム名に対応する日本語を定義する。
class Order < ActiveRecord::Base has_many :line_items set_field_names :name => '名前', :pay_type => '支払方法', :address => '住所', :email => 'E-メール' validates_presence_of :name, :email, :address, :pay_type end
http://jp.rubyist.net/magazine/?0012-RubyOnRails
このプラグインわかりやすくてすごく簡単だった。
チェックアウトページでカート内容表示
コンポーネントを使用すると、カートの内容を表示するコードを一度だけ記述して、
それを二ヵ所から呼び出すことが可能になる。
まずcheckout.rhtmlに
<%= render_component(:action => "display_cart", :params => {:context => :checkout})%>
paramsを追加するのはdisplay_cart()でレイアウトを使用しないように指示するため
def display_cart @cart = find_cart @items = @cart.items if @items.empty? redirect_to_index('現在、カートに商品は入っていません') end if params[:context] == :checkout render(:layout => false) end end
render_component()によってdisplay_cart()が呼び出されるときは
必ずparams[:context] == :checkoutが成立するので:layout => falseとなる。