Я создаю страницу продукта, где пользователь может загрузить более одной фотографии продукта. Чтобы создать и отредактировать продукт, я создаю файл формы. Для загрузки фотографий я использовал 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? }
, но не использовать.
Помощь!