0

与我之前的问题类似的问题,但这个问题略有不同。因此,我完成了以下操作,使其删除了我的类别箱;

控制器

def destroy
    @bin = Bin.find(params[:id])
    @bin.destroy
    redirect_to :dashboard_main
end

每个 BIN 还 :has_many Savedtweets。以上,删除了 bin,即使在模型中我可以做:dependent => :destroy,如何在删除 BIN 时删除 Savedtweets,但同时更新另一个名为 Newtweets 的列并更改 Status 列值从“保存”到“新”。我试过这样做,但不知道它有效;

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 相同。

4

1 回答 1

0

假设我正确阅读了问题,您想要更新与关联的记录具有相同值的记录status字段。Newtweettweet_idSavedtweet@bin

一种方法是:

@bin = Bin.find(params[:id])
Newtweet.where(:tweet_id => @bin.savedtweets.pluck(:tweet_id)).update_all(:status => 'new')

如果这是在 a 被销毁时应该发生的事情Bin,那么您需要将它放在before_destroy回调中,而不是控制器中。

于 2013-10-28T19:15:37.770 回答