問題タブ [associations]
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.
ruby-on-rails - has_many:関連付けを通じて
ある種のこの関連付けを行うことは可能ですか?
ユーザーモデル:
コンソールでのテスト
これはログに記録されています:
では、この関連付けをデータベースからレコードを取得するだけでなく、データベースに書き込むために機能させるための美しい方法はありますか?
database-design - Yelp や eBay のような Web サイト (多数のカテゴリとサブカテゴリ) のデータベースと関係を設計する最良の方法は何でしょうか?
すべてのカテゴリ用のテーブルと、すべてのサブカテゴリ用のテーブル (およびサブサブカテゴリなどの別のテーブル) がありますか? すべてのレベルはどのように相互に通信するのですか?
私はそのレベルの複雑さを持つ可能性のあるプロジェクトを始めた初心者であり、そのことに頭を悩ませています。
私はRailsで作業していますが、データベーススキーマの回答、さらに読むためのポインタなどもいただければ幸いです.
ruby-on-rails - 同じモデルとのRailsの関連付け
次の関連付けを持つ2つのクラスがあります。
担当者と技術者のフィールドは、タイプUserのオブジェクトを参照していることに注意してください。これらの関係はモデルにどのように含まれるべきですか?
ruby-on-rails - メモリ内のeager-loadedアソシエーションの更新
私の現在の Rails アプリでは、5 秒ごとにデータベースにアクセスしたくない長時間実行されるバックグラウンド タスクを開始できるように、データベースから大量のデータをメモリにプルしています。
これはすべてうまく機能していますが、可能であれば削除したい洗練されていないコードがいくつかあります。
たとえば、User モデルがあり、その User モデルが連絡先の形で他の User モデルにリンクでき、それが最初の User モデルにリンクし直すことができる状況があります。これは次のようにモデル化されています (Milan Novota の以前の支援に感謝します): -
だから今私は入力することができます
ユーザーaのすべての連絡先を取得します。ここで、ユーザー a を介してユーザー b の連絡先を取得したいとしましょう (理由はわかりませんが、これは単なる例です!)
これで、ユーザー a の名前を取得できます (複雑で回りくどい、現実世界では決して使用されないような方法で)
ここまでは順調ですね。ここで、ユーザー a の名前を変更します
データベースから以前と同じようにユーザーaの名前に再度アクセスすると、取得します
ただし、この値を熱心にロードしてメモリに保持すると、
しかし、次のことを行うと正しい答えが得られます
明らかに、eager-loading は、元のユーザーと ContactRecord オブジェクトからeager-loadされたユーザーに対して異なる User オブジェクトを作成しています。
だから(ついに!)私の質問はこれです: -
現時点では、使用してこれを回避しています
(@users は、熱心に読み込まれた User オブジェクトのリストです)。代わりに、eager-loaded User オブジェクトを更新する方法はありますか?
ご注意ください: -
a) 私は以下を使用して熱心に読み込んでいます
b) 明らかに、これは私が作業している実際のコードではありませんが、そのコードを示すためにさらに多くの説明と説明が必要であり、十分に退屈させたと思います! 私が使用している実際の例では、奇妙に見えるかもしれませんが、正しく機能するためにこの構造が必要であると信じてください! ;)
c) 例を再構築する際にタイプミスやエラーが発生した可能性がありますが、それらは無視してください。私が知る必要があるのは、データベースにアクセスせずに熱心にロードされたユーザーをリロードできるかどうかだけです。
よろしくお願いします!
更新: 以下で説明するように、モデル データはプロセス実行の最後までデータベースに保存されないため、データベース内のデータは変更されていないため、リロードは機能しません。
ruby-on-rails - なぜassociation.buildはparent_idを子に割り当てないのですか?
私は次のモデルを持っています:
plan.rbで
およびticket.rb内
コントローラで以下のコードを実行する場合
保存はチケットのerror_messageで失敗します:プランを空白にすることはできません。(プランは有効です。)
ruby-on-rails - has_many オブジェクトが関連付けられていないすべてのオブジェクトを見つける
私のオンライン ストアでは、注文が「承認済み」状態で、関連付けられた出荷がまだない場合、注文の出荷準備が整っています。今、私はこれをやっています:
より良い方法はありますか?