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

ruby-on-rails - has_many AND has_one を使用して 2 つのテーブルをリンクしますか?

これはすでに何百万回も尋ねられていると思います。よく検索していないだけです。次の設定があります: 多くのイベントを持つインストラクターがいます。各イベントにはインストラクター (所有者/作成者) が 1 人しかいません。別のリンケージを追加して、他のインストラクターを関連付けることができるようにしたいが、元のインストラクター (所有者) は保持したい。私は大雑把な ASCII 表現を持っていますが、私の人生では Rails モデルでそれを行う方法を理解することはできません。

0 投票する
5 に答える
27957 参照

activerecord - Rails 3のhas_many:through関係で子オブジェクトをフィルタリングする

ご挨拶、

メンバーシップに関する追加情報(具体的には、ユーザーが会社の管理者であるかどうか、ブール値を介して)を含むモデルを介して相互に属する必要があるアプリケーションがCompaniesあります。コードの単純なバージョン:UsersCompanyMembershipadmin

もちろん、これにより、などを介して会社のすべてのメンバーを簡単に取得できますcompany.users.all。ただし、その会社の管理者である会社のすべてのユーザーのリストを取得しようとしています(また、ユーザーが特定の会社の管理者であるかどうかをテストしようとしています)。私の最初の解決策は次のとおりでしたcompany.rb

これは機能しますが、何かが非効率に感じられ(各メンバーシップを反復処理し、毎回SQLを実行しますか?それともRelationはそれよりも賢いですか?)、これを実行するためのより良い方法があるかどうかはわかりません(おそらくRails 3が使用するスコープまたは派手な新しいRelationオブジェクト?)

続行するための最良の方法(できればRails 3のベストプラクティスを使用する)に関するアドバイスをいただければ幸いです。

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

ruby-on-rails - Rails: 異なるデータベースのテーブル間の has_many_through 関連付けの設定

別の結合モデル AccountOwnership を介して、2 つのモデル User と CustomerAccount の間の has_many :through 関係をセットアップしようとしています (users と account_ownerships テーブルは 1 つのデータベースにあり、db1 と言い、customer_accounts テーブルはリモート db にあり、db2 とします)。

関連付けを設定する関連コードは次のとおりです。

config/database.yml (ここには示されていませんが、構成は正しいです)

スクリプト/コンソールで

また

しかし

ここでの問題は、「account_ownerships」および「users」テーブルが 1 つのデフォルト データベース (db1 など) に含まれており、「customers」テーブルが別のデータベース (db2 など) に含まれていることです。データベースへの接続は適切に構成されていますが、ルックアップ中に使用可能なデータベース接続オブジェクトが 1 つしかないため、Rails は db2 で account_ownerships データベースを見つけようとして失敗します。

同じ db 接続を使用して 2 つの異なるデータベースに接続する方法が見つからないため、設計/ロジックに欠陥があるように見えますが、設計を変更せずに回避策があるかどうかを確認したいと思います。(db2 は私の管理下にないため、設計を変更するのは気が進まない)

account_ownerships テーブルを db2 に移動することでこの問題を回避できるようですが、これは少なくとも私にとっては理想的ではありません。

Railsでこの関連付けをセットアップするための代替メカニズム/スキーマはありますか?

前もって感謝します。M

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

django - Django - フォームとビューで中間テーブルを使用して多くのことを処理する良い方法は何ですか

次のモデルがあるとします-

多くの場合、 にitems「割り当て」られると、関連するオブジェクトorganizationに最初に記録された値と同じ値になります。Itemただし、場合によっては、組織に割り当てられたアイテムが上書きされることがありますvalue(したがって、中間モデル)。元の値を上書きすることはめったに起こらないので (実際には起こります)、ユーザーがインスタンスitemsのリストから必要なものを選択Itemして、それらを組織のインスタンスに割り当てることができるようにしたいと考えています。ユーザーは、一括割り当てが完了した後で個々の値を上書きするオプションを利用できます。

だから私は次の単純なModelFormを持っています -

モデルがあるthroughので、単純な form.save() は機能しません。(i)Customizableユーザーが選択したアイテムに対応するインスタンスを保存し、(ii) 永続化されたインスタンスが、foreignkey によって関連付けられたインスタンスから取得された対応するインスタンスからCustomizable適切に取得されていることを確認する必要があります。valuevalueitem

私はビューでそれを処理しようとしています (しかし、私の心はブロックされています) -

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

sql - 多対多の関連付けられたレコードの数による行の並べ替え

このような SO エントリが他にもたくさんあることは知っていますが、実際に私の質問に答えるエントリが見つからないので、誰かがそれに答えるか、関連する別の SO の質問を教えてくれることを願っています。

基本的に、検索された(この例では「foobar」)を含むVenues を持つ sを返す次のクエリがあります。CheckInKeyword

したいのSELECTと、指定された ごとORDER BYに一致したの数。たとえば、 に関連付けられた 5 つの が作成された場合、ソートされた値を含む( のようなものと呼ばれる) 列が返されるはずです。KeywordVenueCheckInKeywordkeyword_count5

SELECT理想的には、これは句にクエリを使用せずに実行するか、できればまったくクエリを使用しないで実行する必要があります。

私はしばらくこれに苦労してきましたが、頭が真っ白になりました(おそらく1日が長すぎました)ので、ここでいくつかの助けをいただければ幸いです.

前もって感謝します!

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

ruby-on-rails - :has_many:throughアソシエーションをbelongs_toアソシエーションに設定するRuby on Rails

私には3つのモデルがあり、それぞれに次の関連付けがあります。

コメント文でわかるように、私は必要なものについて述べました。

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

ruby-on-rails - Rails has_many による create メソッドの失敗

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

次に、新しいプロジェクトを作成し、それにユーザーを割り当てることができるフォームを作成します。

フォームは次のとおりです。

ただし、何らかの理由で、レコードが機能するためにUserProjectテーブルに存在する必要があります。

関連付けが存在しない場合に関連付けを作成する方法について何か考えはありますか?

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

ruby-on-rails - 冗長に見える ActiveRecord の has_many 定義

取り組んでいるプロジェクトにスタイルの関連付けを適用してきhas and belongs to manyましたが、結合モデルで追加の情報を取得したかったためbelongs_to、. 最初にこれに出くわした後、モデル User にこれらの両方の定義が必要であることを知りました (対応する Show モデルでも同じです)。has_manyhas_and_belongs_to_many

私の質問は、Rails 構文の設計に関するものです。なぜなら、ここで全体像を見落としていないことを確認したいからです。なぜ最初の構文が必要なのですか? という非標準名の中間体を介してユーザーがショーのリストにアクセスできることを確立している場合saved_shows、なぜ も確立するのhas_many :saved_showsでしょうか?

これに引っかかったのは私が初めてではないと思うので、Rails がこの一見冗長な定義を必要とする理由に興味があります。構文の選択が不適切なだけなのか、それとも背後にもっと深い設計があるのか​​?

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

ruby-on-rails - rails 3 has_many :スルーレコード保存エラー

私の問題が正確にはわからないので、この質問にはさらに説明が必要かもしれませんが、最も関連性が高いと思われるものは次のとおりです。

結合モデルにはhas_many :through、外部キーではないフィールドがいくつかあります。モデルを構築して保存しようとすると、結合モデルからの非外部キー フィールドで検証エラーが発生します。

私のファイルは次のようになります。

(ロールは文字列です)

返されるパラメーターは次のようになります。

正確なエラーは次のとおりです。

で見ることができるので、これは明らかに正しくありません。params[]

私は何を間違っていますか?

これはレール3.0.0です

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

ruby-on-rails - :throughアソシエーションの結合テーブルに条件が設定されているRailsで検索するにはどうすればよいですか?

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

ユーザーがアクセスできるタスクのみを表示できるようにしたい(つまり、readフラグがテーブルで設定さtrueれている)。Permissions私は次のクエリでこれを達成できますが、私にはあまりRails-yのようには見えません:

誰かがこれを行う正しい方法を知っていますか?