0

すべての検証で同じエラー メッセージが必要な場合は、どのようにコーディングすればよいですか?

presence、 、などの 3 つの基準がuniquenessありlengthます。
同じエラーメッセージが必要です。
しかし、私のコードは長さエラーと一致した場合にのみ機能します。
全部(他の2つ)に申し込むにはどうすればいいですか?

validates :title,   
    :presence => true,   
    :uniqueness => true,   
    :length => { :maximum => 100, :message => "Must be unique, and has to be less than 100 characters"}
4

2 に答える 2

1

検証で実行できます

validates :title, 
      :presence => {:message => "Must be unique, and has to be less than 100 characters" },
      :uniqueness => {:message => "Must be unique, and has to be less than 100 characters"},
      :length => { :maximum => 100, :message => "Must be unique, and has to be less than 100 characters"}
于 2013-01-22T06:17:54.283 に答える
1

を使用してこれを行う方法があると確信していますが、validatesこの問題が発生した場合は、おそらくカスタム検証を作成するだけです。

validate :title_format

def title_format
  if title.blank? || title.length > 100 || Post.where(:title => title).exists? 
    errors.add(:title, "Must be unique and less than 100 characters")
  end
end

(もちろん、Post を実際のモデル名に置き換えます。)

ちなみに、あなたのメッセージには「100文字未満」と書かれていますが、実際には「100文字以下」を検証しています。おそらく、どちらかを選択して一貫性を持たせたいと思うでしょう。

于 2013-01-22T06:10:10.297 に答える