제품을 파괴됩니다 판매 아이팟) : belongs_to => :. 나는 주어진 제품을 삭제하면 제품은, 다른 하나는 가 (아이팟 클래식처럼)
그래서, 그것을 가리키는 모든 리스팅이 삭제 얻을 의미가 있습니다, 디자인입니다 그러나
, I. 두 제품을 하나에 병합하고 목록을 결합하는 "병합"기능을 작성하고 있습니다. 따라서 두 제품이 "iPod Co lor "및"iPod Classic "을 선택하고 두 개를 병합하고 싶습니다. 내가하고 싶은 것은 "아이팟 클래식에 병합, 아이팟 컬러"라고하고, 결과는해야한다 : 아이팟 컬러리스트가 PRODUCT_ID 후 아이팟 클래식 제품
- 변경이 상장 (들)
- 내가 다음 "아이팟 색상"제품
음을 삭제 저장, 그게 전부는 목록을 삭제하지 않고, 잘 작동합니다. 그러나, 나는이 컨트롤러를 가지고 있는데, 아이팟 컬러 제품을 파기 할 때 어떤 이유로 든, 아이팟 클래식으로 옮겨지고 데이터베이스에 저장되었다는 것을 확인한 후에도 이전에 가리킨리스트 "iPod Color"도 파괴되고, 나는 이유를 알아낼 수 없다. 그것은 마치 그들이 파괴 된 제품에 어떤 종류의 연결을 유지하고있는 것처럼, 따라서 스스로 파괴되기 시작합니다.
나는 고통스럽게 뻔한 것이 무엇입니까?
def merge
merging_from = Product.find(params[:id])
merging_to = Product.find_by_model(params[:merging_to])
unless merging_to.nil?
unless merging_from.nil?
unless merging_from == merging_to # you don't want to merge something with itself
merging_from.listings.each do |l|
l.product = merging_to
l.save
end
# through some debugging, I've confirmed that my missing Listings are disappearing as a result of the following destroy call
merging_from.destroy
end
end
end
천재. 그랬어! – jefflunt
http://ar.rubyonrails.org/classes/ActiveRecord/Base.html#M000409 – jefflunt
위대한 답변, 어떻게 그 행동을 설명합니까? – apneadiving