私はメッセージ句を使ってその検証のためだけに特別なメッセージを表示する特殊な検証を持つ属性を持っています。ここに1つの例があります:Ruby on Rails i18n - モデル内のカスタムメッセージを翻訳したい
validates :email, presence: true, length: { maximum: 60 },
format: { with: valid_email_regex, message: "is not a valid email address format." },
uniqueness: { case_sensitive: false }
ここでメッセージを翻訳したいと思いますが、どうすればよいかわかりません。
私は、メッセージ:t( "some_value_here")のようなものを入力する例を見てきました。私はその指定についてはわかりません。私はこのメッセージのようなものを試しました:t(:bad_email)。私は何かを試してみるために私のyamlファイルで次のことをしました。
ActionView::Template::Error (undefined method `t' for #<Class:0x007fefc1b709e0>)
は、私も私のYAMLファイルでこれを試してみました:私は、次のエラーを得た私のRailsアプリケーションにアクセスしようとしました
activemodel:
errors:
bad_email: "is not a valid email address format."
私はこれをオフに研究されている
activemodel:
errors:
user:
bad_email: "is not a valid email address format."
一日中私が見つけることができるのは、空白または空のような組み込みのエラーハッシュを置き換えることだけです。カスタムエラーハッシュを使用してモデル内で置き換える方法がありますか?この時点で私はコード化されたものとして働かせることはできません。私の希望は、問題は私のyamlファイルの設定方法です。私はこれを設定する方法のさまざまなバージョンを見てきました。私はこれをアクティブモデルまたはアクティブレコードの下に置くべきかどうかはわかりません。私はそれが私が翻訳したいカスタムメッセージであるので、私はactivemodelを想定しました。
ご協力いただければ幸いです。これは、アプリケーションの最初の翻訳を開始する前に私が把握する必要がある最後の部分です。
UPDATE 2013年7月29日午後7時30分CDT
bgatesは私に私のモデルファイルはYAMLファイルにカスタムメッセージを受信する方法を設定して非常に良いスタートを与えました。しかし、カスタムメッセージが見つかるようにyamlファイルで次の設定を行う必要がありました。このモデルに固有の翻訳がある場合
[lang]:
activerecord:
errors:
messages:
bad_email: "just ain't right"
、それは上記の一般的なものを上書きしますYAMLファイルで、その後
validates :email, presence: true, length: { maximum: 60 },
format: { with: valid_email_regex, message: :bad_email },
uniqueness: { case_sensitive: false }
:
activerecord:
errors:
models:
user:
attributes:
bio:
no_links: "cannot contain email addresses or website links (URLs)."
email:
bad_email: "is not a valid email address format."
username:
bad_username: "can only contain numbers and letters. No special characters or spaces."
私のセットアップ私のモデルとYAMLファイル。私はactiverecord.errors.models.user.attributes.email.bad_emailの翻訳が欠落しています。私は私のyamlファイルに行った変更を私の記述に入れました。うまくいきます。私が手伝ってくれてありがとうございます。 –
トップレベルのキーとして 'activerecord'の代わりに' activemodel'を使用しなければなりませんでした。詳細は、エラー[ソース](https://github.com/rails/rails/blob/ccbc98e37dcc11ad5150b93dcee8008bc94aa83a/activemodel/lib/active_model/errors.rb#L465-L472)を参照してください。 – Nick
素敵なトリック、ありがとう –