0

「shared/error_messages」パーシャルがレンダリングされるべきときにレンダリングされない理由がわかりません (つまり、無効な「治療」がこのフォームから送信された場合)。

_treating_form.html.erb:

<%= form_for(@treating) do |f| %>  
    <%= render 'shared/error_messages', object: f.object %>
    <div><%= f.hidden_field :requestee_id %></div>  
    <div>
        <%= f.text_field :proposed_location, placeholder: "Propose a location here..." %>
    </div>    
    <div>
        <%= f.text_field :proposed_date, placeholder: "Propose a date here..." %>
    </div>
    <div class="field">
        <%= f.text_area :intro, placeholder: "Write your introduction here..." %>
    </div>
    <%= f.submit "Send", class: "btn btn-large btn-primary" %>
<% end %>

この _treating_form.html.erb パーシャルは users/show.html.erb ビューで呼び出されます。

<% provide(:title, @user.name) %>
<div class="row">
    <aside class="span4">
        <section>
            <h1>
                <%= @user.name %>
            </h1>
        </section>
        <% if signed_in? %>
            <section>
                    <%= render 'shared/treating_form' unless current_user?(@user) %>
            </section>
        <% end %>
    </aside>
</div>

これが私のerror_messages部分です:

<% if object.errors.any? %>
    <div id="error_explanation">
        <div class="alert alert-error">
            The form contains <%= pluralize(object.errors.count, "error") %>.
        </div>
        <ul>
            <% object.errors.full_messages.each do |msg| %>
                <li>* <%= msg %></li>
            <% end %>
        </ul>
    </div>
<% end %>

error_messages パーシャルは、ユーザーの「設定の編集」ページに送信する際にトリガーされた検証エラーで正しくレンダリングされています。

<% provide(:title, "Edit user") %>
<h1>Update your profile</h1>
<div class="row">
    <div class="span6 offset3">
    <%= form_for(@user) do |f| %>
        <%= render 'shared/error_messages', object: f.object %>
        <%= f.label :name %>
        <%= f.text_field :name %>
        <%= f.label :email %>
        <%= f.text_field :email %>
        <%= f.label :password %>
        <%= f.password_field :password %>
        <%= f.label :password_confirmation, "Confirm Password" %>
        <%= f.password_field :password_confirmation %>
        <%= f.submit "Save changes", class: "btn btn-large btn-primary" %>
        <% end %>       
    </div>
</div>

無効な「処理」が送信されているときにエラーが表示されない理由はありますか? ありがとう!

4

1 に答える 1

1

パーシャルに任意のオプションを追加するときはいつでも、 :partial => を明示的に指定する必要があります

= render partial: 'shared/error_messages', object: f.object
于 2012-08-07T14:55:52.213 に答える