0

두 개의 테이블 예약 및 대여가 있습니다. 사용자가 렌트카를 예약하고 관리자가 렌트를 승인합니다.after_create 레코드를 삭제합니다.

관리자가 임대를 승인함에 따라. 예약이 더 이상 필요하지 않습니다. 대여 기록 생성과 동시에 예약 레코드를 삭제할 수 있습니까?

내 시도였다

#rental_controller.rb 
after_create :delete_booking 

def delete_booking 
    @booking = Booking.find(params[:id]) 
    @booking.destroy 

respond_to do |format| 
    format.html { redirect_to rental_url } 
    format.json { head :no_content } 
end 
end 
+0

mvc. 모델 스 니펫이 있습니까? 그렇다면 respond_to는 모델이 아닌 컨트롤러에 속합니다. 어쩌면 내가 뭘 하려는지 이해하지 못하기 때문에 질문을 수정 해보십시오. – John

+0

@ 존 질문을 다시 말하기 위해 최선을 다했습니다. 작동하기가 아주 어렵습니다. – messyeater

+0

내가 잘못 생각한 것에 대한 답변을 추가했습니다. 임대와 예약 간의 관계는 무엇입니까 (has_many, belongs_to, has_one, none)? – John

답변

1

모델에 속하는 만든 후하지 컨트롤러를 (나는 바보입니다 그래서 만약 apolagies 루비에 새로운 해요). 스 니펫은 임대 컨트롤러에서 가져온 것이므로 대여 모델이 있다고 가정합니다. 임대 모델에서

:

이상적으로
after_create :delete_booking 


def delete_booking 
    @booking = Booking.where(:booking_no => self.booking_no).first 
    @booking.destroy 
end 
+0

booking_no는 예약과 대여의 관계입니다 – messyeater

+0

대여 및 예약에는 booking_no라는 열이 있습니까? 내 대답이 업데이트되었습니다. 그게 당신에게 효과가 있는지 알려주세요. – John

+0

딱! – messyeater

0

뭔가 같은 ..

# Booking.rb Model 

has_one :booking 

그리고 당신은 하나의 방법에 너무 많은 일을하려고 깨는 아칸소처럼 보이는

# Rental.rb Model 

belongs_to :booking, :class_name => "Booking", :foreign_key => "booking_no" 

after_create :delete_booking 

private 
    def delete_booking 
    self.booking.destroy 
    end 
관련 문제