如何在删除另一个DB的同时更新另一个DB中列字符串的值

时间:2013-10-28 19:09:17

标签: mysql database ruby-on-rails-3 ruby-on-rails-3.2

之前我的问题类似的问题,但这个问题有点不同。所以我完成了以下操作,这使得它删除了我的类别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是相同的。

1 个答案:

答案 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}}回调中,而不是控制器。