問題タブ [has-and-belongs-to-many]

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 に答える
1160 参照

ruby-on-rails - 同じモデルで複数回habtm

出版物をモデル化しようとしています。パブリケーションには、複数の作成者と編集者を含めることができます。ある人が1つの出版物の著者であり、別の出版物の編集者である可能性があるため、著者と編集者に別々のモデルはありません。

上記のコードは、同じ結合テーブルを使用しているため、機能しません。これで、結合テーブルの名前を指定できるようになりましたが、APIドキュメントに警告があり、理解できないことについての警告があります。

:join_table:辞書式順序に基づくデフォルトが希望どおりでない場合は、結合テーブルの名前を指定します。警告:いずれかのクラスのテーブル名を上書きする場合、動作させるには、table_nameメソッドをhas_and_belongs_to_many宣言の下で宣言する必要があります。

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

cakephp - CakePHP:hasOneとHABTMを使用したsaveAll

1つのフォーム内に保存する必要がある2つのモデルを設定しています。ユーザーが「/deliveries/ add /」フォームを使用する場合、新しい配信を保存し、その配信に添付されている新しいライセンスも保存するために必要です。これはhasOneの関係です。

また、同じフォームで、ライセンスに含まれる製品と製品オプションを選択する必要があります。

私が遭遇している問題は、CakePHPが私のライセンス/製品とライセンス/ ProductOptionsの関係がHABTMであることを検出せず、フォームヘルパーが複数選択ドロップダウンではなく単一選択ドロップダウンしか表示しないことです。フォームヘルパーで強制的に倍数にしたとしても、データは保存されず、編集フォームに正しく入力されません(製品オプションの正しいラベルが表示されますが)。これは、私の主な節約モデルからそれほど離れた関係にあることと関係があるのではないかと思います。

以下に関連するコードを投稿しました。私のためにこれを見てくれてありがとう!

配信モデルは次のようになります。

ライセンスモデルは次のようになります。

deliveryies_controllerは次のようになります。

views / deliverys/add.ctpは次のようになります。

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

cakephp - CakePHP hasAndBelongsToMany(HABTM)参加レコードの削除

ユーザーとロケーションの間にHABTM関係があります。どちらのモデルにも適切な$hasAndBelongsToMany変数セットがあります。

ユーザーの場所を管理するときに、ユーザーと場所の関連付けを削除したいのですが、場所は削除しません。明らかに、この場所は他のユーザーに属している可能性があります。次のコードは、HABTMアソシエーションを提供する結合テーブルレコードのみを削除すると予想されますが、両方のレコードが削除されました。

しかし、私はCakePHPを初めて使用するので、何かが足りないと確信しています。カスケードをfalseに設定し、[ユーザー]、[ユーザー]-> [天気]、[天気]->[ユーザー]でモデルの順序を変更してみました。運がない。

助けてくれてありがとう。

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

ruby-on-rails - 同じ2つのクラス間で複数のhas_and_belongs_to_manyの関連付けを行うにはどうすればよいですか?

私は次の設定をしています:

この設定で、私はのようなことをすることができますPublication.first.authors。しかし、人が関与しているすべての出版物を一覧表示したい場合はPerson.first.publications、結合テーブルが見つからないというエラーがpeople_publicationsスローされます。どうすれば修正できますか?

著者と編集者のために別々のモデルに切り替える必要がありますか?ただし、人はある出版物の著者であり、別の出版物の編集者である可能性があるため、データベースにある程度の冗長性が導入されます。

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

ruby-on-rails - モデルとポリモーフィックの関連付け

連絡先をクラスに関連付けようとしていますが、2つの異なるタイプとして関連付けています。Current_classesおよびInterested_classes。

多態性を有効にする必要があることはわかっていますが、どこで有効にする必要があるかわかりません。

これは私が今持っているものです

そして、連絡先モデルの内部に、このようなものが必要です。

私は何が間違っているのですか?

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

cakephp - CakePHP HABTM:すべての写真HABTMの複数のタグを見つける方法は?

写真とタグの2つのテーブルがあり、標準のphotos_tagsリンクテーブルがあります。

私のモデルにはPhotosHABTMタグが表示されており、リンクを更新することで両方を正常に更新できます。

私の質問は、「Sunset」と「Ocean」の両方でタグ付けされたすべての写真を検索したいとします。どうすればよいですか。

Nate's Bakeryの投稿に従って内部結合を試みましたが、どちらかまたは両方のタグが付いたすべての写真を見つけることができますが、両方のタグが付いた写真だけが必要です(たとえば、正しいフレーズの場合は「AND」検索)。現在、タグを追加すると、より多くの結果が得られます。タグが追加されるにつれて、結果が少なくなります。

あるいは、素敵なケーキのような方法がない場合、どのようにそれを行いますか?複数の検索を行ってから、配列を比較しますか?ちょっともったいないようですが...

TIA。

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

ruby-on-rails - フィールドを持つRails Habtm

hasにフィールドを持ち、多くのテーブルに属することは可能ですか?

お気に入りのように:

ActiveRecord のおかげで、タイムスタンプがうまく機能することがわかりました。しかし、お気に入りをテーブルに追加しようとすると、次のようになります。

次に、次のエラー メッセージが表示されます。

ActiveRecord::StatementInvalid: SQLite3::SQLException: messages_users.favorite を NULL にすることはできません: INSERT INTO "messages_users" ("created_at", "message_id", "updated_at", "user_id") VALUES ('''2010-05-27 06:07:50.721512''', 1, '''2010-05-27 06:07:50.721512''', 1)

私はhabtmを使いたいのですが、私はhas_many fooが好きではありませんが、バーの関連付け:)

それは可能ですか?

どうもありがとう。

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

ruby-on-rails - 同じ Rails モデルに 2 回参加します。たとえば、人々はメンバーシップを通じて has_many clubs を行い、人々は委員会を通じて has_many clubs を使用します。

モデル: * 人 * クラブ

関係 * メンバーシップ * 委員会

人々はクラブに参加できるべきである(メンバーシップ) 人々はクラブの理事会に参加できるべきである(委員会)

私のアプリケーションでは、これらには非常に異なる機能が含まれているため、フラグを使用して (is_board_member) などを設定することは避けたいと思います。

私は書きたいと思っています:

人々 has_many :clubs :through => :membership # :as => :member? :foreign_key => :member_id? has_many :clubs :through => :committee # as (上記)

しかし、これをつなぎ合わせる方法がよくわかりません

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

cakephp - CakePHPはすべてのINTフィールドを結合テーブルのIDとして扱いますか?

ユーザー、そのプロファイル、およびいくつかのタグを保存しようとしていますが、プロファイルとタグをリンクする結合テーブルが混乱し続けています。

プロファイルモデルはインストラクターと呼ばれ、タグモデルはサブジェクトと呼ばれます。インストラクターは電話番号と郵便番号を持っており、何らかの理由でCakePHPは、これらが結合テーブルにエントリを作成するときに使用する必要があるフィールドであると考えています。

私のJoinテーブルは常に次のように表示されます。

私のモデル:

私のモデルの関連付け:

私のフォームデータは次のようになります:

フォームを処理するための私の関数は次のようになります。

; } } } } }
0 投票する
1 に答える
182 参照

ruby-on-rails - Rails の同じ 2 つのテーブルに対する 2 つの異なるタイプの関連付け

ユーザーとテーマの 2 つのモデルがあり、現在、themes_users テーブルの HABTM アソシエーションに参加しています。基本的に、ユーザーが新しいテーマを作成すると、他のユーザーが自分で使用するために選択できるようになります。

ただし、テーマを編集できるのは、テーマの元の作成者のみです。したがって、その関係を処理するには、テーマの created_by_id フィールドのような別の種類の関連付けが必要です。

このように、ユーザー モデルは 2 つの異なるロールとして機能します。テーマの実装者および/またはテーマの所有者になることができます。実装者の関係は、themes_users 結合テーブルによって処理されます。問題は次のとおりです。この二次的な関連付けを処理する正しい方法は何ですか? ユーザーをポリモーフィックにしてから、created_by_id が「所有者」を参照するようにする必要がありますか? それとももっと簡単なものがありますか?

助けてくれてどうもありがとう!