問題タブ [has-many-through]

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 投票する
1 に答える
771 参照

ruby-on-rails - has_manyと:belongs_toをhas_many:throughに変換する

私は現在の協会を持っています:

Group :has_many EmployeesEmployee :belongs_to Group

しかし今、私は従業員を多くのグループにも関連付けたいと思っています。

この目的のために私は作ることを考えています:

groupizations group_id:integer employee_id:integer created_at:datetime

これにより、従業員モデルとグループモデルが変更されます。

多対多のrailscastsエピソードからこれらすべてを理解しています。私が混乱しているのは、今、次のコードで新しい従業員を作成していることだけです。

このコードはどのように変更されますか?groupizations同時にデータを追加する必要がありますか?

0 投票する
0 に答える
807 参照

ruby-on-rails - Rails の同じテーブルを介した複数の has_many 関連付け

次のデータベース スキーマがあります。

代替テキスト

私はこのようなことができるようにしたい:

私は Rails を初めて使用するので、何を書いているのか 100% 確信できるとは限りませんが、次の Dog クラスの宣言を試みましたが、失敗しました :) :

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

ruby-on-rails - RailsでActiveRecordを使用して、重複ではなく1つのレコードを取得するにはどうすればよいですか?

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

同じ会社との連絡が多い。各企業のインスタンスが1つだけ必要です。

私は次のことを試しました:

しかし、これは私が信じるすべての連絡先のすべての会社を私に示しています。少なくとも、それが出力のようになります。

会社のインスタンスが1つだけ追加されていることを確認するにはどうすればよいですか?

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

ruby-on-rails - has_manyを:throughオプションと関連付けるための特定のキーを宣言するにはどうすればよいですか?

私には協会があり
ます。著者にはたくさんの本があります。そして本には多くの著者がいます。
:throughオプションを使用する必要があります(「relations」という名前のテーブルを介して、「left_id」(author_idとして使用)および「right_id」(adbook_idとして使用)という名前の2つの列があります。



コンソールの場合:



では、どうすれば「book_id」を「right_id」に指定できますか?(「foreign_key」のようなオプションはありますか?)

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

ruby-on-rails - has_many :through、cache、touch、および counter_cache に関する問題

私はたくさんの has_many :through リレーションをアプリに持っています。接続されたオブジェクトの数など、これに関連する情報を広範囲に表示しています。ユーザーがリレーションを更新するたびに、結合テーブルが変更され、これをスイーパーでキャッチできます。

問題は、結合テーブルのエントリが削除され、破棄されないことです。関係がなくなった場合、これを検出する正当な方法がなく、キャッシュから誤解を招く情報を表示しています。:touch => true や :counter_cache => true のようなものはすべて部分的に機能します。リレーションが更新または作成されると増加します。しかし、ユーザーがリレーションを削除しても何も起こりません。:counter_cache が壊れていて、:touch がトリガーされません。

ガベージ ソリューションは、メイン モデルが保存されるときに、コントローラーで .touch を呼び出すことです。この種の作品は、しかし、それは本当に非専門家のようです. これは、コントローラーではなく、モデル ロジックにある必要があります。

私は何か大きなものを見逃しているように感じますが、これについて頭を悩ませることはできません. 誰でもこの問題について洞察を得ることができますか?

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

django - テンプレートでカスタマイズされた多対多スルー オブジェクトのフィールドにアクセスする方法

次のモデルを検討してください。

メンバーシップは、追加のフィールドを持つカスタマイズされた多対 5 スルー オブジェクトです。
person インスタンスがある場合、通常のコードと django テンプレート ファイルの両方で、そのすべてのメンバーシップ関係の対応する date_joined フィールドにアクセスするにはどうすればよいですか?

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

ruby-on-rails - has_many_through リレーションから結合モデルを取得する

私の Rails アプリには has_many_through リレーションがあります。結合モデル/テーブルを使用して、関係に関するデータを保存したいと考えています (具体的には、特定の関係が使用された回数)。

サブジェクトとの既存の関係をチェックし、存在する場合は関係のカウンターを更新し、存在しない場合は作成するクラスの1つに追加メソッドを作成しています。

例:

CoffeeDrinker は、Coffee through Cup に関連しています。CoffeeDrinker が一口飲むたびに、その特定の Cup のカウンターをインクリメントする必要があります。CoffeeDrinker が初めて一口飲むと、Cup が作成され、カウンターが初期化されます。

リレーション オブジェクトを保持するための最も簡単かつ/または最も正しい方法は何ですか?

0 投票する
3 に答える
4564 参照

ruby-on-rails - Railsでは、実際のレコードを削除せずに「結合テーブル項目」を破棄する方法は?

混乱しています。結合テーブルのレコードを削除/破棄する方法がわかりません:




リレーション アイテムを破棄したいだけの場合はどうすればよいですか?

0 投票する
3 に答える
4015 参照

ruby-on-rails-3 - Rails3は質問を通じてhas_manyをネストしました

アプリケーションをRails3にアップグレードすることを計画しています。私たちがかなり使用したプラグインの1つは、nested_has_many_throughです。このプラグインは古く、メンテナンスされていないようで、新しいRails3アプリケーションでは機能していないようです。

簡単な例:

誰かがこれを処理するためのベストプラクティスの方法、または動作するRails3プラグインを推奨できますか?

ありがとう!!

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

ruby-on-rails - has_many の RESTful ルート: 関係を通じて?

UserActivity モデルを使用して、 has_many :through によって関連付けられている User と Activity の 2 つのモデルがあります。ユーザーはアクティビティを「希望」または「完了」できます。これにより、UserActivity レコードが作成され、適切なブール値が設定されます。

ルートとコントローラー アクションを作成するときに、これらのアクションを処理するために何をお勧めしますか? activity/:id/want や activity/:id/done のようなものが最も理にかなっており、アクティビティ リソースの下に 2 つのメンバー ルートがあるでしょうか? それとも、user_activity コントローラで更新/作成アクションを使用し、作成のために /user_activity に投稿し、更新のために /user_activity/:id に置く方が理にかなっていますか?