0

我正在創建產品頁面,用戶可以在其中上載多個產品的照片。要創建和編輯產品,我正在渲染一個表單文件。對於上傳照片,我已經使用產品形式的nested_fields照片。這是形式的照片代碼的樣子:Rails:如果字段爲空,請阻止提交表單

<%= f.fields_for :photos do |photo| %> 
    <%= image_tag photo.object.avatar.url(:thumb), unless f.object.new_record? or photo.object.new_record? %> 
    <%= photo.file_field :avatar, :style => "none" %> 
    <%= photo.link_to_remove "Remove"%> 
<% end %> 
<%= f.link_to_add 'Add Photos', :photos, "data-association-insertion-node"=> ".photos", "data-association-insertion-position" => "append", "data-type" => "link"%> 

在產品型號,

has_many :photos, :as => :attachable, :dependent => :destroy 
accepts_nested_attributes_for :photos, :allow_destroy => true 

當用戶創建產品,我已經使用驗證的照片的存在。所以,用戶必須上傳照片。這件作品正常工作。

在照片模式:

validate :validates_account_avatar 

但問題是編輯。用戶可以刪除所有照片。在這裏我想阻止用戶刪除所有的照片。

如何在提交編輯過的產品時通知用戶照片字段不能爲空或至少存在一張照片。

我試圖用這樣的:

accepts_nested_attributes_for :photos, :allow_destroy => true, :reject_if => lambda { |a| a[:avatar].blank? } 

,但沒有用。

幫助!

回答