問題タブ [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 投票する
1 に答える
2721 参照

cakephp - CakephpでHABTMを取得する条件

Cakephp を使用しており、カテゴリ 'X' の一部であるすべての提出物を表示したいと考えています。HABTM 関係を持つ 4 つのテーブルがあります。

ユーザー -> (haveMany) -> 提出物 <-> (hasAndBelongsToMany) <-> カテゴリ

しかし、私は $this->paginate() を使用してそうしたいと思います。投稿ごとに、投稿を投稿したユーザーを表示したいと思います。

ユーザーテーブル

提出表

カテゴリー表

SubmissionCategory テーブル

これを行うことができるページネーションを作成するのに本当に苦労しています。何かが欠けていない限り、それは不可能だと思い始めています。

私がcakephpを使用していなかった場合、これは私がやりたいクエリです

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

ruby-on-rails - RSpec テスト関係ロジック

私は以下をテストしています:

アカウント

所有権参加モデル

テスト

そして、私はこのエラーを受け取り続けます

よくわかりません - どこの親ですか?「作成」メソッドを使用する場合、すべてのモデルを作成して保存するべきではありませんか? 「account.save」をどこにでも置いてみました。

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

ruby-on-rails - HABTM、または複数のbelongs_to?

私は自分自身にRailsを教えており、テストプロジェクトとして、stackoverflowに似た簡単な質問/回答アプリをモックアップしています。

私の簡略化されたバージョンでは、次のようになります。

  • 質問
  • 答え
  • ユーザー(質問と回答の作成者)
答えは質問に属すると思います。

  • ユーザーと質問の間の適切な関係は何ですか?
  • ユーザーと回答の間の適切な関係は何ですか?

質問と回答は実際には「belong_to」ユーザーではなく、代わりに「has_oneuser」(作成者)の質問と回答であるように思われます。しかし、それも正しくないようです。なぜなら、ユーザーは「belong_toquestion」と「belong_toanswer」になるからです。

HABTMは3つのクラス間の答えですか?

多くの人がこの関係にとらわれていますね。:)

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

ruby-on-rails - エラーなしで削除/破棄するレールhabtmを作成するには?

サニティチェックとして簡単な例を作成しましたが、レールの has_and_belongs_to_many 関係のどちらの側でもアイテムを破棄できないようです。

いずれかのテーブルからオブジェクトを削除しようとするたびに、恐ろしい NameError / "uninitialized constant" エラー メッセージが表示されます。

実例を示すために、Boy クラスと Dog クラスを含むサンプル Rails アプリを作成しました。それぞれに基本的な足場を使用し、boys_dogs という名前のリンク テーブルを作成しました。次に単純な before_save ルーチンを追加して、男の子が作成されるたびに新しい「犬」を作成し、簡単にセットアップできるように関係を確立しました。

犬.rb

少年.rb

schema.rb

ここや他の場所で同様の問題について多くの投稿を見てきましたが、解決策は通常、属しているクラス名を使用しており、複数形/単数形のクラス名が混乱しています。ここではそうではないと思いますが、habtm ステートメントを切り替えて単数形の名前を使用して、それが役立つかどうかを確認してみました (うまくいきませんでした)。ここで単純なものが欠けているようです。

実際のエラー メッセージは次のとおりです。

BoysController の NameError#destroy
未初期化定数 Boy::Dogs

トレースは次のようになります。

/Library/Ruby/Gems/1.8/gems/activesupport-2.3.4/lib/active_support/dependencies.rb:105:in destroy_without_callbacks' /Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record /callbacks.rb:337:in send' ...const_missing'
(eval):3:in

destroy_without_transactions'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.4/lib/active_record/transactions.rb:229:in

ありがとう。

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

ruby-on-rails - Railsはhabtmモデルの結合テーブルのIDを送信しようとしていますか?

したがって、ユーザーとロールの 2 つの Rails モデルがあり、それぞれが habtm と users_roles の結合テーブルで指定されています。

選択するロールのチェックボックスがあるユーザーフォームから保存すると、レールは結合テーブルの id 列に手動で値を挿入しようとしています。id 列は auto_increment に設定する必要があり、値を渡す必要がないため、これは私には意味がありません。保存しようとすると、MySQL エラーが発生します。

何か不足していますか?

ありがとう。

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

ruby-on-rails - has_and_belongs_to_manyの存在を検証します

こんにちは私はモデルでhas_and_belongs_to_manyを使用しています。種類の存在感のバリターを設定したい。コアあたりの最大種類数を3に設定します

どのようにできるのか?

ありがとう

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

ruby-on-rails - Rails - HABTM 関係...ユーザーからのチェックボックス値の保存

データベース内のユーザーの利益のために保存するために、この HABTM 関係の問題を理解しようとしています。興味テーブルには、ID と名前を持つさまざまな興味のリストがあります (例: id=1 、名前 = '音楽')

私はユーザーモデルを持っています=> user.rb

および興味モデル => interest.rb

今、チェックボックスのリストからユーザーの興味の選択を編集または更新しようとしています。コントローラーは次のようになります=>

param_posted 関数は次のようになります

ビュー ロジックは次のようになります。

すべてがコーシャに見えると思いましたが、ビューを実行するとエラーが発生します:

InterestController#edit の NoMethodError - # User:0x4797ddc の未定義のメソッド「interest」

ユーザーの関心をイベントに結び付ける別のモデル/テーブルを作成する必要がありますか? InterestsofUsers (id、user_id、interest_id) のように? HABTMの関係があれば、その必要がなくなると思っていました...

混乱している

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

ruby-on-rails - HABTM リレーションシップと結合テーブル

I'm trying to connect the values of two join tables that I have and show the results based on a conditional relationship...and i'm having some problems

I have a Users Model(:name, :password, :email), and Events model(:name, :etc) and Interests model (:name)

I created about 5 records in each model.

Then I created two join tables -> UsersInterests and EventsInterests; each not containing a primary key and only comprised of the user_id/interest_id and event_id/interest_id respectively.

Then I added to the model files the HABTM Relationship

Now I wanted to create a controller that finds only the events where the users interests correspond with the events interests

From working on this for a while I've figured that I need something in the area of

またはそのようなもの...私はちょっと迷っています..検索条件をどのように述べていますか?...SQLで内部結合を行う方法は知っていますが、これを行うエレガントなRailsの方法を探しています. .. ヒントはありますか?

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

ruby-on-rails - HABTMの関係と名前付きスコープ

私はこれにしばらく取り組んできましたが、どこにエラーがあるのか​​わかりません。

ユーザーモデル(:name、:password、:email)、イベントモデル(:name、:etc)、インタレストモデル(:name)[> all singular <]

次に、2つの結合テーブル->UsersInterestsとEventsInterestsを作成しました。それぞれに主キーは含まれず、それぞれuser_id/interest_idとevent_id/interest_idのみで構成されます。[>複数形<]

私のモデルには、次のようなHABTM関係が含まれています

Whew..okそこで、特定のユーザーと関心を共有するすべてのイベントを検索するnamed_scopeを作成したいと思いました。これが誰かが私を助けてくれたコードです。

コントローラから実行した場合=>

SQLエラーが発生します:「そのような列はありません:Event.id:SELECT"events"。*FROM "events" LEFT JOIN events_interests ei ON ei.event_id=...........」

これで、イベントモデルにIDがあり、すべての列名が正しいと思います。不足しているものを誰かが確認できますか?

0 投票する
4 に答える
4630 参照

ruby-on-rails - Railsで大量のHABTM関連付けを作成する最速の方法は何ですか?

Rails で HABTM 関係を持つ 2 つのテーブルがあります。次のようなもの:

今、私は新しいFooオブジェクトを持っており、事前にロードした何千ものバーをそれに一括割り当てしたいと考えています:

これを行う最速の方法は何ですか? 私はもう試した:

そして、どちらも非常に遅く、それぞれに次のようなエントリがありますbar:

bar_foos 列 (1.1 ミリ秒) bars_foos SQL からフィールドを表示 (0.6 ミリ秒) INSERT INTO bars_foos( bar_id, foo_id) 値 (100, 117200)

私は ar-extensions を見ましたがimport、結合テーブルでの使用を妨げるモデル (Model.import) なしでは関数は機能しないようです。

SQL を書く必要がありますか、それとも Rails にはもっときれいな方法がありますか?