1

だから私はRailsアプリにフォームを持ってい_form.html.erbます.

私は自分のサイトのすべてのページにこのパーシャルを表示しているので、実際にはその背後にモデル ロジックはなく、ユーザーが作成したフォームはビューでオンザフライで作成されます。

<%= form_for User.new, :validate => true do |f| %>
  <table>
    <tr>
      <td><%= f.label :invitation_token, "Invite Token" %></td>
      <td><%= f.text_field :invitation_token, :placeholder => "From your inbox&hellip;".html_safe %></td>
    </tr>
    <tr>
      <td colspan="2"><br><%= f.submit "Sign Up" %></td>
    </tr>
  </table>
<% end %>

User モデルにいくつかの検証がありますが、リロード後にそれらの検証エラーをビューに表示するにはどうすればよいですか?

試してみましUser.new.errors.inspectたが、検証エラーが発生した場合でも、messages パラメーターは常に空です。

4

1 に答える 1

2

これを行うにはいくつかの方法があります。多くの場所でこれらのエラー メッセージをレンダリングする必要がある可能性が高いため、ビューに共有フォルダーを作成し、次のapp/views/shared/_error_messages.html.erbパーシャルを追加します。

<% if object.errors.any? %>
  <ul>
    <% object.errors.full_messages.each do |msg| %>
      <li>* <%= msg %></li>
    <% end %>
  </ul>
<% end %>

ビューで、すぐ下のフォームにエラー メッセージを表示するコードを追加します。form for

<%= render 'shared/error_messages', object: f.object %>
于 2013-05-23T04:43:52.713 に答える