問題タブ [dependent-destroy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3205 参照

mysql - RailsのHABTM結合テーブルからエントリを削除するにはどうすればよいですか?

テストを何度も繰り返した結果、2 つのモデル間の HABTM 関係を表す結合テーブルが、これらのモデルのインスタンスが削除されたときにエントリを削除していないことに気付きました。HABTM 関係を持つモデルのインスタンスを削除する場合、何か特別なことをする必要がありますか?

0 投票する
1 に答える
10842 参照

ruby-on-rails - has_many, :dependent => :destroy でレコードを破棄する方法

いくつかのプラグインの助けを借りて、Rail 3 AuditLog を構築しました。これは、識別用の次のフィールド (feeded_id、feeded_type) を持つ AuditLog テーブルにデータを格納します。

私の場合、多くの写真を含むフォトアルバムがあります。

写真アルバム (id=2) を削除すると、関連するすべての写真が削除されますが、AuditLog から次のような項目は削除されません: (feeded_id = 2, feeded_type = PhotoAlbum)

AuditLog テーブルに "photo_album_id" 列がなく、できない場合、PhotoAlbum が削除されたときに、AuditLog 内の関連するすべてのアイテムを削除するために、Rails を使用して従属 > Destory をセットアップする方法はありますか?

ありがとう、私はこれが他のものより少し複雑であることを知っています. 読んでくれてありがとう!

0 投票する
1 に答える
1984 参照

ruby-on-rails - Rails、ネストされたモデル セットの Dependent Destroy をセットアップする方法は?

重複の可能性:
Rails - :dependent => :destroy の使用方法を理解するのに役立ちます

私は次のモデルを持っています:

パーミッション モデルでやりたいことは、パーミッションが破棄されたときに、group_id と user_id に基づいて、関連するすべての ConversationParticipations を削除することです。

私はこれを試しました:

しかし、それはまだそれをカットしていないようです。提案?

ありがとう

0 投票する
2 に答える
583 参照

ruby-on-rails - どうすれば:dependent=>destroyをトリガーできますか

ユーザーとイメージの2つのモデルがあります。

上記のコードが表示されている場合は、モデルのdestroy呼び出しをオーバーライドしています。ユーザーが自分のアカウントを削除しているときではなく、依存をトリガーしたい=>コールバックを破棄して、イメージの破棄をトリガーします。

PS:act_as_paranoidやその他のプラグインは使いたくありません。次のような非常に複雑なマッピングがあるため、dependent=>destroyをトリガーする必要があります。

ユーザーhas_many画像、has_manyコメント、has_manyいいね、has_manyアクティビティ、さらに9種類のマッピング、さらにディープマッピングなど。

0 投票する
6 に答える
3296 参照

ruby-on-rails-3 - Relationship モデルに依存する :destroy のテストを追加します (第 11 章、演習 1 Rails チュートリアル、第 2 版)。

これらのテストが正しく機能していることを確認してください。user.rb の has_many :relationships と has_many :reverse_relationships の依存: :destroy オプションを削除して、失敗させました。

他の誰かがMichael Hartl の Rails Tutorial 2nd Edition, Chapter 11 Exercises に取り組んでいる場合に備えて、私が行ったことを共有したいと思います。

この演習からいくつかの疑問が生じました (この投稿の下部を参照)。誰かが助けてくれれば、それは素晴らしいことです。

第 11 章、演習 1:

リレーションシップ モデル (リスト 11.4 とリスト 11.16) に依存する :destroy のテストを追加するには、リスト 10.15 の例に従ってください。

これが私のテストです: spec/models/user_spec.rb


この演習からいくつかの疑問が生じました。

質問1:

私の最初のテストは、relationship.should be_nil reverse_relationships.should be_nil でした。

しかし、ユーザーが存在しないにもかかわらず、配列がまだ返されていることに気付きました。では、ユーザーが存在せず、関連付けメソッドが呼び出された場合、結果は配列のままですか? これは常に真実ですか?

質問2:

Railsコンソールでユーザーのリレーションシップとreverse_relationshipsを削除してみました。

私はこれを試しました

実際に関係を完全に破壊するにはどうすればよいですか? コンソールで探索するときに知っておくとよいことのようです。

ありがとう!私はまだRailsにかなり慣れていません

0 投票する
1 に答える
100 参照

youtube - ネストされたリソースが依存破棄で適切に破棄されない

:dependent => :destroy.

私は youtube_it ジェムを使用しており、かなりバニラのセットアップをしています。

以下の関連ビット:

ビデオコントローラー --

ビデオ モデル --

説教モデル --

上記のセットアップでは、すべてのローカル データが正常に削除されます。ただし、YouTubeのビデオはそうではありません。

モデルのメソッドで破棄アクションをオーバーライドしようとしましたが、おそらく私の理解に失敗したため、YouTube から削除されたビデオまたはローカルで削除されたレコードのいずれかしか取得できず、両方を同時に取得することはできません (私は以下の 2 つのバリアントとその結果)。

これは、ローカル レコードを破壊するだけです -

これは、YouTube の動画を破壊するだけで、ローカル リソースは破壊しません --

最後に、役立つ場合に備えて、説教を破棄するために使用しているリンク-

ご協力ありがとうございます。

0 投票する
1 に答える
245 参照

ruby-on-rails-3 - :dependent => :destroy_all で heroku でアプリがクラッシュする

すべてがローカル環境で機能することに注意してください

これがコードです

これは public_activity gem を使用したものです

エラーは

それが期待:destroy_allされ、私が書き:destroy_all、ローカルで動作する場合..では、ここで何が起こっているのでしょうか?

0 投票する
1 に答える
640 参照

ruby-on-rails - Rails 依存の破棄エラー

Rails Movie アプリがあります。明らかに、映画のテーブルで。ムービーhas_many :comments, :dependent => :destroyとコメントbelongs_to :movie。コメントもbelongs_to :user、新しいユーザーが映画にコメントすると、そのコメントがusers#showページに表示されます。

ユーザームービーにコメントすると、そのコメントがページに表示されます。localhost:3000/comments/:idそのコメントの表示ページにアクセスすることもできます

今私の問題はこれです:

そのコメントでそのムービーを破棄または削除しても、コメントは実際には削除されません。に移動することはできますがlocalhost:3000/comments/:idusers/:id/reviews(ユーザーのコメントが表示されている場所) に移動すると、そのコメントがまだ表示されていて、まだ映画に属しているため、エラーが発生します。だから私はこの種のエラーが発生しますUnable to find Movie with id = 58

ムービーが削除されたときに言う方法はありますか、Movies_controller.rb destroy actionコメントもすべて削除しますmovie_id => params[:id]