I have two models nested with 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
Here is the view for adding images:
<%= 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? %>
开发者_StackOverflow <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 %>
Unfortunatelly Paperclip validations error messages aren't shown(ie. "This message probably won't be shown! :P").
Is this possible to fix that issue?
The issue was in controller. I use:
redirect_to photos_path
instead of:
render :action => "edit"
redirect_to overwrite @object
(calls edit action directly), so @object.errors
are cleaned.
When I saw that, i just lol'ed. :D
精彩评论