다른 모델에서 모델 관계가 사용 중인지 확인하여 모델 관계가 파괴되지 않도록하여 고아를 만드는 가장 좋은 방법은 무엇입니까?레일 종속 종속 파괴
예 : 나는 Ticket 및 TicketStatus 모델을 가지고 있습니다. TicketStatus는 Ticket에 속합니다. Ticket has_many TicketStatuses.
TicketStatus가 이미 티켓에 할당되어있는 경우이를 삭제할 수 없습니다. 오류 메시지도 보내고 싶습니다.
다른 모델에서 모델 관계가 사용 중인지 확인하여 모델 관계가 파괴되지 않도록하여 고아를 만드는 가장 좋은 방법은 무엇입니까?레일 종속 종속 파괴
예 : 나는 Ticket 및 TicketStatus 모델을 가지고 있습니다. TicketStatus는 Ticket에 속합니다. Ticket has_many TicketStatuses.
TicketStatus가 이미 티켓에 할당되어있는 경우이를 삭제할 수 없습니다. 오류 메시지도 보내고 싶습니다.
가장 쉬운 방법 콜백 :
class TicketStatus < ActiveRecord::Base
belongs_to :ticket
before_destroy :check_ticket
private
def check_ticket
if ticket != nil
errors.add_to_base("cannot delete ticket status that has a ticket")
return false
end
end
end
이 그것을 방지하고 당신에게 오류를 제공합니다.
희망이 도움이됩니다.
before_destroy
callback을 사용하고 임박한 삭제를 취소하는 return false
을 확인하십시오.
이 답변을 수락 했습니까? 아니면 더 좋은 방법이 있습니까? –
이것은 좋은 해결책입니다. OP는 여전히 그것을 받아 들일 필요가 있습니다! – andrewpthorp