0

ユーザーが製品の複数の写真をアップロードできる製品ページを作成しています。製品を作成および編集するために、フォーム ファイルをレンダリングしています。写真をアップロードするために、製品の形で写真にnested_fieldsを使用しました。フォーム内の写真コードは次のようになります。

<%= 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

しかし、問題は編集にあります。ユーザーはすべての写真を削除できます。ここでは、ユーザーがすべての写真を削除できないようにしたいと考えています。

編集した製品を送信する際に、写真フィールドを空白にすることはできないこと、または少なくとも 1 枚の写真が存在する必要があることをユーザーに通知する方法。

私はこれを使用しようとしました:

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

しかし、役に立たない。

ヘルプ!

4

1 に答える 1

0

jquery 検証プラグインを使用します。

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

于 2013-03-27T11:12:49.927 に答える