之前我的问题类似的问题,但这个问题有点不同。所以我完成了以下操作,这使得它删除了我的类别bin;
CONTROLLER
def destroy
@bin = Bin.find(params[:id])
@bin.destroy
redirect_to :dashboard_main
end
每个BIN还有:has_many Savedtweets。以上,删除bin,即使在模型中我可以做:依赖=> :destroy,如何在删除BIN时删除Savedtweets,但同时更新另一个名为Newtweets的列,并将Status列值从“saved”更改为“new”。我已经尝试过这样做但却不知道它并且它有效;
def destroy
@bin = Bin.find(params[:id])
@newtweet = Newtweet.find_by_tweet_id(@bins.savedtweet.tweet_id).update_all$
@bin.destroy
redirect_to :dashboard_main
end
这很难看,但仍然不起作用。表Savedtweets和Newtweets使用“tweet_id”,id是相同的。
答案 0 :(得分:0)
假设我正确阅读了该问题,您希望更新status
记录的Newtweet
字段,这些记录与tweet_id
相关的Savedtweet
记录具有相同的@bin
记录@bin = Bin.find(params[:id])
Newtweet.where(:tweet_id => @bin.savedtweets.pluck(:tweet_id)).update_all(:status => 'new')
。
这样做的一种方法如下:
Bin
如果在before_destroy
被销毁的任何时候都应该发生这种情况,你需要将它放在{{1}}回调中,而不是控制器。