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

rails:734

From: Kazuhiro Yoshida <moriq@m...>
Date: Sun, 04 Dec 2005 19:44:44 +0900
Subject: [rails:734] Re: 悩ましい日付型, date_select, select_date

もりきゅうです。

Hiroshi Takagi <gollum@h...> wrote:
> 1. render :action => 'new' もしくは render :action => 'edit' 
> でエラーメッセージとともに最表示されたフォーム上では、
> 不正な日付が入力されたフィールドの値は、デフォルトのDate.todayに
> なってしまっており、どんな間違いを起したのかわからない。

ああ。Date には入らないですね。date_helper をいじるのは面倒なので、
フェイクオブジェクトに値を入れて渡せばいいかな。

> 2. ActiveHeart を使っている時、同じ芸風で日本語のバリデーション
> メッセージを登録するにはどうしたらよいでしょうか。

AttributeAssignmentError を書き換えていただければ。
芸風を合わせるなら @@default_error_messages を使うようにしてみてください。:)

--
module ActiveRecord
  class AttributeAssignmentError < ActiveRecordError #:nodoc:
    def initialize(message, exception, attribute, values=nil)
      # message ||= "error on assignment #{values.inspect} to #{attribute}"
      message ||= " #{values.inspect} は不正な値です"
      super message
      @exception = exception
      @attribute = attribute
    end
  end

    private
      HOLDER_CLASSES = {
        Date => Struct.new("DateHolder", :year, :month, :day)
      }

      def execute_callstack_for_multiparameter_attributes(callstack)
        errors = []
        callstack.each do |name, values|
          klass = (self.class.reflect_on_aggregation(name) || column_for_attribute
(name)).klass
          if values.empty?
            send(name + "=", nil)
          else
            begin
              send(name + "=", Time == klass ? klass.local(*values) : klass.new(*values))
            rescue => ex
              send(name + "=", HOLDER_CLASSES[klass].new(*values))
              errors << AttributeAssignmentError.new(nil, ex, name, values)
            end
          end
        end
        unless errors.empty?
          raise MultiparameterAssignmentErrors.new(errors), "#{errors.size} error(s) on 
assignment of multiparameter attributes"
        end
      end
end
--

----
Kazuhiro Yoshida  moriq@m...

--
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...         ]