チェックリストを取得する複雑なスコープがあります。このチェックリストには、さまざまなカテゴリの下に多数のタスクがあります。完成したチェックリストだけが欲しいのですが、一部のチェックリストは、すべてのカテゴリが完成していなくても完成します。したがって、列に何かが含まれているかどうかを確認する前に、各列が必要かどうかを確認できる必要があります。これが私の例です。
scope :complete, lambda {|check_lists| check_lists.map do |check_list|
not_complete = false
if check_list.event.booking.video_for_event?
if check_list.raw_footage_user_id.blank? && check_list.raw_footage_check.blank? then not_complete = true end
end
if check_list.event.booking.eblast_not_blank?
# more checking...
end
if check_list.event.booking.on_site_not_blank?
# more checking...
end
if not_complete then reject end
end } #If videos, verify video items. if eblasts, verify eblast items, etc...
したがって、基本的には、マップされている配列から non_complete オブジェクトを削除して、それを終了する方法を知る必要があります。