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