- 624 名前:nobodyさん mailto:sage [2006/10/19(木) 09:59:02 ID:???]
- 値が入力されているときだけvalidationをするにはどうするのでしょうか。
今は validates_format_of :phone, :with=>/^¥d+-¥d+-¥d¥d¥d¥d$/ としているのですが、値が入力されていないときでもvalidationがかかるらしく、 それでエラーとなってしまいます。 validates_format_of :phone, :with=>/^(¥d+-¥d+-¥d¥d¥d¥d)?$/ とすれば回避できるのですが美しくないし、それにvalidates_inclusion_ofなど 他のvalidationメソッドでは使えない技だし。 ソース読む限りは validates_each(attr_names, configuration) do |record, attr_name, value| record.errors.add(attr_name, configuration[:message]) unless value.to_s =~ configuration[:with] end となっているところを validates_each(attr_names, configuration) do |record, attr_name, value| record.errors.add(attr_name, configuration[:message]) unless value.blank? || value.to_s =~ configuration[:with] end とするしかなさそうなんですけど、こんな方法しか用意されていないはずはないと思うので、 だれか助けて。
|

|