回形针。怎么不保存空文件?

时间:2012-06-16 14:08:48

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

我希望用户最多可以保存5个文件(任何不到的文件都可以),所以这是我的新动作(place_photos是Paperclip附件,地点:has_many PlacePhoto):

def new
  @place = Place.new
  5.times { @place.place_photos.build }
  ...
end

我的表格如下(稍微简化):

<%= f.simple_fields_for :place_photos do |photo| %>
  <%= photo.input :photo %>
  <%= photo.input :description %>
<% end %>

结果生成了5个文件字段。提交表单后,如果未提供文件,则会创建空的PlacePhoto记录。如何防止保存空记录而不是出错?

谢谢。

1 个答案:

答案 0 :(得分:6)

place模型中,您可以验证place_photos,如下所示:

Class Place < ActiveRecord::Base

 accepts_nested_attributes_for :place_photos , :reject_if => proc { |attributes| attributes['photo'].blank? }, :allow_destroy => true

end