0

前の私の質問と同様の質問ですが、これは少し異なります。したがって、次のようにして、カテゴリビンを削除しました。

コントローラ

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

各 BIN には :has_many の保存済みツイートもあります。上記はビンを削除し、モデルでは :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仮定Newtweetするtweet_idSavedtweet@bin.

それを行う1つの方法は次のとおりです。

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

これが aBinが破棄されるたびに発生するものである場合before_destroyは、コントローラーではなくコールバックに配置する必要があります。

于 2013-10-28T19:15:37.770 に答える