0

我有兩張桌子的預訂和租金。用戶預訂汽車租賃並且管理員批准租賃。after_create破壞記錄

由於管理員批准租金。預訂不再需要。如何在創建租賃記錄的同時刪除預訂記錄。

這是我嘗試(我是新來的紅寶石所以apolagies如果我是愚蠢的)

#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

它看起來像你的AR試圖做太多的一個方法,打破MVC。是你模型的片段嗎?如果是這樣,respond_to屬於控制器而不是模型。也許嘗試重述你的問題,因爲我不太明白你想要做什麼。 – John

+0

@John我已經盡力重新提出這個問題。工作很難 – messyeater

+0

我添加了一個我認爲是錯誤的答案。出租和預訂之間有什麼關係(has_many,belongs_to,has_one,none)? – John

回答

1

創建屬於模型後,不是控制器。我假設你有租賃模型,因爲該片段來自租賃控制器。

在租賃模式:

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