3

画像のアップロードを伴ういくつかのフォームに取り組んでいます。追加する標準の 2 つのフォームと、現在関連付けられているすべてのフォームがあります。次のようになります。

ここに画像の説明を入力

関連する他のクラス (場所、アイテムなど) に対してポリモーフィックな資産クラスがあります。問題は、アイテムをアップロードまたは更新できることです。アイテムと場所については、次のとおりです。

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

ただし、アップロードされたファイルがない場合、これは拒否されるようです。新しいファイルの場合は基本的にこれが必要ですが、アセット ID を介して説明を更新するだけの場合もあります。上記の :reject_if はそのシナリオを拒否します。この他の種類の情報を更新する例外を作成するにはどうすればよいですか?

どうも

4

1 に答える 1

2

ブロックに条件を追加して解決しましたparams[:id]reject_ifあなたの例では、次のようになります。

accepts_nested_attributes_for :assets, :allow_destroy => true, 
    :reject_if => lambda { |a| a[:asset].blank? && a[:id].blank? }

既存のレコードはid、ネストされたハッシュの属性で返される必要があるため、これにより、既存のネストされたレコードの更新が可能になり、新しいレコードを no で拒否することができますasset(新しいレコードにはまだid.

于 2014-10-19T15:16:26.630 に答える