Сообщения об ошибках не отображают сообщения об ошибках проверки скрепки - PullRequest
2 голосов
/ 27 июля 2011

У меня есть две модели, вложенные в accepts_nested_attributes_for:

class Place < ActiveRecord::Base
  # Relations..
  accepts_nested_attributes_for :place_photos, :allow_destroy => true
  # others methods...
end

-

class PlacePhoto < ActiveRecord::Base

  belongs_to :place
  # attr_accessible :photo_index                                                                                                                             
  has_attached_file :image, :styles => { :small => "120>", :large => "640x480>"}
  validates_attachment_presence :image
  validates_attachment_size :image, :less_than => 500.kilobytes,
       :if => Proc.new {|imports| !imports.image_file_name.blank? }, 
       :message => "This message probably won't be shown! :P"
end

Вот вид для добавления изображений:

   <%= form_for([:profile, @place], :html => {:multipart => true }) do |f| %>

      <% if @place.errors.any? %>
        <div id="error_explanation">
          <h2><%= pluralize(@place.errors.count, "error") %> prohibited this place from being saved:</h2>

          <ul>
            <% @place.errors.full_messages.each do |msg| %>
              <li><%= msg %></li>
            <% end %>
          </ul>

        </div>
      <% end %>
 # ...
          <%= f.fields_for :place_photos do |p| %>
            <% if p.object.new_record? %>
              <div> <%= image_tag("place_avatar.png", :class => "listTabsImg", :height => '120', :width => '120') %>
                <div class="listTabsTxt">
                  <span>Upload new image</span> <br/>
                  <%= p.file_field :image %><br/>
                  <div class="clear"></div>
                </div>
              </div>
              <br/>
            <% end %>
          <% end %>

<%= f.submit "Upload all", :class => "btnGB" %>
<% end %>

К сожалению, сообщения об ошибках валидации Paperclip не отображаются (т.е. «Это сообщение, вероятно, не будет отображаться!: P»).

Возможно ли это исправить?

1 Ответ

3 голосов
/ 05 августа 2011

Проблема была в контроллере. Я использую:

redirect_to photos_path

вместо:

render :action => "edit"

redirect_to перезаписать @object (вызывает действие редактирования напрямую), поэтому @object.errors очищается.

Когда я увидел это, я просто повеселился. : D

...