rubyで文字数を数えるには?
http://d.hatena.ne.jp/muscovyduck/20060504を参照。railsのvalidationsのvalidates_length_ofでも同じことをやっている。
valueに文字列が入っている場合value.split(//).sizeで文字数が得られる。
#byteの文字数ではないことに注意。
ある文字列の文字数を調べるには、文字列を文字単位で配列に格納してから、配列のサイズを得ればいいみたい。
文字列を文字単位で配列に格納するには、String#splitを「//」を引数にして実行すればいいみたいだよ。
validates_each(attrs, options) do |record, attr, value| value = value.split(//) if value.kind_of?(String) if value.nil? or value.size < option_value.begin record.errors.add(attr, too_short) elsif value.size > option_value.end record.errors.add(attr, too_long) end end