[前][次][番号順一覧][スレッド一覧]

rails:727

From: Hiroshi Takagi <gollum@h...>
Date: Sat, 03 Dec 2005 21:59:33 +0900
Subject: [rails:727] Re: 悩ましい日付型, date_select, select_date

たかぎです。


On Sat, 3 Dec 2005 20:49:38 +0900
Osakana <osakanas@g...> wrote:

> Four Days on Rails
> http://www.rails4days.pwp.blueyonder.co.uk/Rails4Days.pdf
> Page 27-28 あたりに、以下のようなコードが掲載されています。

引用どうもありがとうございます。

> def create
>      begin
>      @item = Item.new(@params[:item])
>      if @item.save
>        flash['notice'] = 'Item was successfully created.'
>        redirect_to :action => 'list_by_priority'
>      else
>        @categories = Category.find_all
>        render_action 'new'
>      end
>      rescue
>        flash['notice'] = 'Item could not be saved.'
>        redirect_to :action => 'new'
>      end
>    end

この路線は、最初にわたしもやってみたのですが、
以下の理由から、採用するのをやめました。

1. テーブルに複数の Date 型を含んだ場合は、
どこでinvalid な値がはいったかがわからない。
例えば、契約の開始・終了日とか。

2. どの日付項目が問題であったかを調べるには、
MultiparameterAssignment が発生する前に、
それぞれの項目の(1i), (2i) (3i) を集めてきて 
個々にvalidate することになるが、
controller のcode が、どんどん汚くなる。

3. 不正が日付が入力された場合は、falsh[:notice]で、
他のフィールドで不正な値が入力された場合は、error_messages_for で、
というぐあいにinvalid value に対するエラーメッセージの形態が違うと、
利用者にとって「ふしぜん」

4. テーブルは汚くなるが、model に rescue を入れることで、
他のフィールドのvalidate と同じようエラーメッセージを扱える。
複数のコントローラーメソッドからアクセスされても一箇所で対応できる。

> Four Days on Rails は Rails 入門としては、私には少々難しす 
> ぎるドキュメントでしたが、実用的なテクニックが色々と盛り込まれて 
> いるようですね。

わたしは、まだ、これ読んでません。
通読してみます。
紹介、ありがとうございました。

-- 
Hiroshi Takagi <gollum@h...>



--
ML: rails@r...
使い方: http://QuickML.com/
Web Site: http://wiki.fdiary.net/rails/
ML Archives: http://www.fdiary.net/ml/rails/

[前][次][番号順一覧][スレッド一覧]

       724 2005-12-03 12:33 [gollum@h...         ] 悩ましい日付型, date_select, select_date
       725 2005-12-03 12:49 ┣[osakanas@g...       ]                                       
       726 2005-12-03 13:42 ┃┣[kazuhiko@f...       ]                                     
->     727 2005-12-03 13:59 ┃┗[gollum@h...         ]                                     
       729 2005-12-04 07:02 ┗[moriq@m...          ]                                       
       730 2005-12-04 07:09  ┣[moriq@m...          ]                                     
       731 2005-12-04 07:30  ┣[moriq@m...          ]                                     
       733 2005-12-04 10:26  ┗[gollum@h...         ]                                     
       734 2005-12-04 11:44   ┗[moriq@m...          ]                                   
       735 2005-12-04 11:56    ┣[moriq@m...          ]                                 
       739 2005-12-04 16:49    ┗[gollum@h...         ]