2011-07-27 189 views
2

我已经嵌套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 %> 

不幸的回形针验证错误信息没有显示(即“这个信息可能不会显示!:P “)。

这是可以解决这个问题吗?

回答

3

该问题出现在控制器中。我使用:的

redirect_to photos_path

代替:

render :action => "edit"

redirect_to的覆盖@object(直接调用编辑动作),因此@object.errors清洁。

当我看到那些,我只是大声地说。 :D