5

みんな!

:username フィールドの小さな検証があります。これは 4 から 30 文字にする必要があります。私はバリデーションを書きました: :length => { :within => 4..30, :message => I18n.t('activerecord.errors.range')- すべての種類のエラー (too_long や too_short とは異なります) に対して単一のエラー メッセージを表示したかったのですが、ここに質問があります - 最小値と最大値の両方を翻訳に渡して、次のようにすることはできますか?ユーザー名は 4 ~ 30 文字である必要があります。現在、私は: を持っていますがrange: "should be between %{count} and %{count} characters"、これは明らかに機能しません (確認のためだけに作成しました)。

範囲からこれらの値を取得することは可能ですか?

みんなアドバイスありがとう!

4

1 に答える 1

9

カスタム変数を I18n translate メソッド (またはその省略形 - t) に渡すことができます。

I18n.t('activerecord.errors.range', :min => 4, :max => 30)

次に、文字列テンプレート内で %{min} と %{max} を使用して使用できます。

範囲から自動的に取得するわけではありませんが、これは私が考えることができる限り最も近いです。

于 2012-09-03T12:46:19.670 に答える