错误消息不显示Paperclip验证错误消息

时间:2011-07-27 10:52:05

标签: ruby-on-rails ruby-on-rails-3 paperclip nested-attributes

我有两个嵌套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 个答案:

答案 0 :(得分:3)

问题出在控制器上。我用:

redirect_to photos_path

而不是:

render :action => "edit"

redirect_to覆盖@object(直接调用编辑操作),以便清除@object.errors

当我看到它时,我只是懒洋洋地说。 :d

相关问题