1

エラー メッセージが自動的に表示されないため、回避策としてフラッシュを使用することにしました。これは私がやっていることです

コントローラ:

flash[:notice] = @post.errors.full_messages

意見:

<%= flash[:notice] %>

次に、ビューにこの醜いエラーメッセージが表示されます。

["Content can't be blank", "Content is too short (minimum is 10 characters)"] 

しかし、少なくとも、ユーザーはエラー メッセージを正常に取得します。ここで、エラー メッセージをカスタマイズして、見栄えを良くする必要があります。各エラー文をいくつかのローカル変数に解析して表示できると思います (もっと洗練された方法はありますか?)。ただし、エラー メッセージをカスタマイズする方法がわかりません。たとえば、「コンテンツを空白にすることはできません」を「コンテンツを空白のままにしました」に変更する必要があります。これはどこで修正できますか?

4

1 に答える 1

1

@post にいくつかの検証エラーが含まれていると、検証@post.errors.full_messages中に発生したエラーの配列が返されます。

それらをうまく表示するには、次のようなことをしたいかもしれません

<%- flash[:notice].each do |error| %>
  <%= error %>
<% end %>

EDIT おっと、質問を読み違えました。

これらのエラーは、次のような検証があるモデルの検証エラーです

validates次のようなカスタムメッセージを渡すことができます

validates :content, :presence => { :message => "You left the content blank" }

更新:あなたが持っているオプションについては、このリンクをチェックしてください

http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates

于 2012-11-22T02:16:09.513 に答える