スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RailsのValidateのエラーメッセージ日本語化

「company」「department」「name」「tel」「mail」というプロパティを持つmodelがあるとする。
例えば、こんな感じで書けばいい↓
class FormData < ActiveRecord::Base
HUMANIZED_KEY_NAMES = {"company" => "会社名",
"department" => "部署名",
"name" => "氏名",
"tel" => "電話番号",
"mail" => "メールアドレス"}

validates_presence_of :company, :message => 'が入力されていません。'
validates_presence_of :department, :message => 'が入力されていません。'
validates_presence_of :name, :message => 'が入力されていません。'
validates_presence_of :tel, :message => 'が入力されていません。'
validates_length_of :company, :maximum => 32, :message => 'は%d字以下で入力してください。'
validates_length_of :department, :maximum => 32, :message => 'は%d字以下で入力してください。'
validates_length_of :name, :maximum => 32, :message => 'は%d字以下で入力してください。'
validates_format_of :tel, :with => /^[0-9-]+$/, :message => 'は半角数字と半角ハイフンで入力してください。'
validates_length_of :tel, :maximum => 16, :message => 'は%d字以下で入力してください。'
validates_length_of :mail, :maximum => 128, :message => 'は%d字以下で入力してください。'

class << self
def human_attribute_name(attribute_key_name)
HUMANIZED_KEY_NAMES[attribute_key_name] || super
end
end
end

さらに、helpers/application_helper.rbのApplicationHelperモジュールに↓を追加する。

def ja_error_messages_for(*params)
res = error_messages_for(*params)
res.sub!(/<h2>(\d+).*<\/h2>/) do
"<h2>入力項目に#{$1}つのエラーがあります</h2>"
end
res.sub!(/<p>.*<\/p>/, "")
end

で、viewに書いた
<%= error_messages_for … %>

<%= ja_error_messages_for … %>
に書き換える。

この記事のトラックバックURL

http://ysmt.blog21.fc2.com/tb.php/288-c1afe84e

コメント

承認待ちコメント
このコメントは管理者の承認待ちです

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。