我希望用户最多可以保存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记录。如何防止保存空记录而不是出错?
谢谢。
答案 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