5

私はあなたが持つことができることを知っています:

accepts_nested_attributes_for :foo, :reject_if => proc { |a| a[:bar].blank? }

代わりに次のようなことを言う方法はありますか

accepts_nested_attributes_for :foo, :reject_if => blah[:bar].blank? and flah[:bar].blank?

また

accepts_nested_attributes_for :foo, :reject_if => all fields except record_date.blank?

ありがとう

4

2 に答える 2

9

私はこれに少し遅れていますが、あなたはできる:

accepts_nested_attributes_for :foo, 
                               reject_if: ->(attributes){ 
                                 attributes.except(:key).values.all?( &:blank? ) 
                               }
于 2013-03-29T14:38:30.833 に答える
0

これに触発されました: https://rails.lighthouseapp.com/projects/8994/tickets/2501-any_blank-and-all_blank-options-for-accepts_nested_attributes_for-reject_if

これは私にとってはうまくいきました:

reject_if: proc { |attributes| attributes.all? {|k,v| v.blank? || ['foo', 'bar', 'baz'].include?(k)} }

例外が 1 つしかない場合は置き換えることができ['foo', 'bar', 'baz'].include?(k)ますが、最初の構文では proc が複数の例外に対応できるようになります。k == 'foo'

于 2012-08-29T13:06:03.807 に答える