2012-06-16 27 views
3

我希望用戶能夠保存多達5個文件(任何小於是罰款),所以這裏是我的新動作(place_photos是回形針附件,地點:的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記錄。如何防止保存空記錄和不發生錯誤?

謝謝。

回答

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 
+0

輝煌。謝謝。我只是改變它一點點:accepts_nested_attributes_for:place_photos,:reject_if => PROC {|屬性| !屬性[「照片」。現在? }:allow_destroy =>真 – Jacek

+0

:)是的!你需要製作照片而不是數據。 – asitmoharna

+0

謝謝,幫助! – deivid