2017-05-04 7 views
0

두 가지 모델이 있습니다. 첫 번째 ModelA는 ModelB의 부모입니다. 즉 ModelA hasMy ModelB. : MODELA이와acts_as_list with paranoia gem

가, 나 또한 두 모델에 대해 설정 acts_as_paranoid 하시고 난 & B.

: MODELA가 파괴 될 때, 모든 종속 ModelB의도 종속 파괴에 지금은 acts_as_paranoid 범위가 인해 파괴됩니다 이제 ModelA를 파괴 할 때 ModelB 레코드가 삭제 될 때 호출되는 ModelB의 콜백을 wan't하지 않습니다.

특히, ModelB에는 속성으로 Position이라는 항목이 있으며, ModelB의 위치 특성이 변경되는 원인이되는 Parania가 파생 됨으로써 업데이트됩니다. 이전에는 없었던 ModelB와 동일한 레코드 및 속성으로 ModelA를 안전하게 복원 할 수 있도록 위치를 변경하지 않아도됩니다.

감사합니다. 이 일을해야 readme

ModelB.acts_as_list_no_update do 
    modela_instance.destroy 
end 

당으로

+0

모델 콜백을 공유 할 수 있습니까? –

+0

modelB에서 destroy가 호출 될 때마다 acts_as_list에 의해 콜백이 암시 적으로 호출됩니다. https://github.com/swanandp/acts_as_list/blob/master/lib/acts_as_list/active_record/acts/list.rb 여기서 'decrement_positions_on_higher_items'함수는 암시 적으로 호출되며, 이후의 모든 modelB 레코드의 위치를 ​​1만큼 감소시킵니다. –

+0

'일시적으로 사용 중지'해야 함 https://github.com/swanandp/acts_as_list/blob/master/README.md#disabling-temporarily –

답변

0

. 나는 그것을 테스트 할 수 있었으면 좋겠다. 불행하게도 그러한 설정은 필요 없다. 문제가 있으면 알려주십시오. 는 희망이 도움이 ..


업데이트 : 댓글이 경우 근무 구문을.

ModelB.acts_as_list_no_update([ModelB]) do 
    modela_instance.destroy 
end 
+0

안녕하세요, Farhan, 사소한 변화로 실제로 작동했습니다. acts_as_list를 최신 버전으로 업데이트해야했습니다. ModleB.acts_as_list_no_update [ModelB] {} –

+0

@AdilHussain 작동 후 upvote 및/또는 답변을 주시면 감사하겠습니다. –

+0

@Farhan, 죄송합니다. 그냥 잊어 버렸습니다. 귀하의 답변에 감사드립니다. :) –