온라인 스토어에서 주문은 "승인 된"상태이고 아직 관련 발송물이없는 경우 출하 준비가 완료되었습니다. 지금 나는 이것을하고있다 :연관된 has_many 객체가없는 모든 객체 찾기
class Order < ActiveRecord::Base
has_many :shipments, :dependent => :destroy
def self.ready_to_ship
unshipped_orders = Array.new
Order.all(:conditions => 'state = "authorized"', :include => :shipments).each do |o|
unshipped_orders << o if o.shipments.empty?
end
unshipped_orders
end
end
더 좋은 방법이 있습니까?
이것은 작동하지 않습니다. has_many 연관이기 때문에 외부 키는 발송 테이블에 저장됩니다. –
우리가 NULL 식별자 –
에 가입하는 이유입니다. 내 잘못 (SQL을 빨아들입니다). 어쨌든 이것은 "상태"를 "상태"(내 특별한 경우)로 바꾸고 "shipments.id"앞에 "and"를 추가해야한다는 것을 제외하면 작동합니다. 이러한 변경 사항을 적용하면이 답변에 표시됩니다. –