問題タブ [model-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 - レールの関連付け方法はどのように機能しますか?
レールの関連付け方法はどのように機能しますか?この例を考えてみましょう
今、私は次のようなことができます
これにより、そのユーザーに属する記事が取得されます。ここまでは順調ですね。
これでさらに先に進んで、いくつかの条件でこれらの記事を見つけることができます。
または単に次のようなメソッドを宣言して関連付けます
そして、やります
今私の質問は、これが関連付けメソッドを使用してフェッチされたオブジェクトfind
の配列でどのように機能するかということです。ActiveRecord
と呼ばれる独自のUser
インスタンスメソッドを実装articles
し、関連付けメソッドとまったく同じ結果が得られる独自の実装を作成した場合、ActiveRecord
オブジェクトのフェッチ配列での検索は機能しません。
私の推測では、関連付けメソッドは、フェッチされたオブジェクトの配列に特定のプロパティをアタッチしfind
、他のActiveRecord
メソッドを使用してさらにクエリを実行できるようにします。この場合のコード実行のシーケンスは何ですか?どうすればこれを検証できますか?
ruby-on-rails - Rails ポリモーフィック アソシエーション、1 つのクラスに 2 つのアソシエーション タイプ
クラスを考えてみましょう:
@link.link_votes << Vote.new
問題は、vote_subject_type
isを使用して新しい投票を追加するとき、またはそのようなもの'Link'
になりたいと思って'link_votes'
いることです。これは AR の制限ですか、それとも回避する方法はありますか?
私は実際に1つの関連する答えを見つけましたが、それが何を言っているのかよくわかりません:同じモデルで複数の関連付けを持つポリモーフィックな関連付け
cakephp - CakePHP: 間接的に関連付けられたモデルの欠点
Cakephp で間接的に関連付けられたモデルを処理する際に問題が発生しています。私の現在のモデル設定は次のとおりです。
これらすべてのモデルに関する情報を 1 つのフォームに保存しようとしています。私が遭遇している欠点は次のとおりです。
フォーム ヘルパーは、1 レベルの深さのフィールド タイプしか認識できないようです。
saveAll() は、1 レベルの深さのレコードしか保存できないようです (複数のモデル フォームの場合)。
私はこれらの問題の解決策をあらゆる場所で探していますが、私は CakePHP を初めて使用するため、これらの問題を処理するための最新の方法または「正しい」方法が何であるかがわかりません。
どんなアドバイスでも大歓迎です。皆さん、ありがとうございました!
編集:失敗した試みのコードをここに投稿しました: http://bin.cakephp.org/saved/58501
ruby-on-rails - to_jsonを使用するときに「:has_many :through」結合テーブルデータにアクセスする方法は?
私は3つのモデルを持っています(ここでは単純化されています):
次のように、Rails の to_json メソッドを使用して、これを JavaScript に送信しています。
これは完全に機能します。オブザベーションは、結合テーブル (子ビュー) を介して正常に取得されます。
ただし、childviews 結合テーブルにあるデータも取得したいと考えています。特に「needs_edit」の値。
to_json 呼び出しでこのデータを取得する方法がわかりません。
誰でも私を助けることができますか?よろしくお願いします。
クリス
sql-server-2005 - ANDリンクを使用して中間テーブルからデータをフィルタリングする
私は次のシナリオを持っています:
テーブルと列(データベースタイプ:Microsoft Sql Server 2005):
表:エントリ
- EntryID
- ...その他の重要でない列
表:属性
- AttributeID
表:EntryAttributes
- EntryID [Releation To:Entries-> EntryID]
- AttributeID [Releation To:Attributes-> AttributeID]
したがって、次のSQLステートメントのような複数の属性を含むエントリのみを選択するにはどうすればよいですか(ステートメントはANDリンクでは機能しません)。
正しいSQLステートメントを作成するにはどうすればよいですか?確かに、どこかに解決策がありますが、その問題を検索するためにどのキーワードを使用すべきかわかりません。
「LinqtoEntites」を使用しているので、そのための単純なLinq式があるかもしれません。
私の投稿を読んでくれてありがとう!
よろしくお願いします!
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
ruby-on-rails - Railsモデル、多くに属しています
あるモデルを別の複数のモデルに関連付ける方法を理解するのに苦労しています。
現在のように、私は持っています:
ただし... ModelB は、ModelA の 1 つのインスタンスだけでなく、場合によっては 3 つのインスタンスに属する必要があります。has_many :through があることは知っていますが、この場合にどのように機能するかはわかりません。ModelA のすべてのインスタンスには、ModelB のインスタンスが常に 3 つだけ含まれます。ただし、前に述べたように、ModelB は ModelA の複数のインスタンスに属することができます。
ruby-on-rails - Rails:親の変更を追跡しない子レコード
これは通常のRailsの動作であり、基本的なものが欠けていると確信していますが、それは何ですか?
子供は親に属し、親には多くのメンバーがいます。
のname
属性はparent
変更されておりchild
、同じ親を引き続き参照していますが、親の更新された属性は反映されていません。update_attributes
失敗の問題でもありません。Sallyのレコード(child
)がデータベースから再度取得されると、属性はの新しい値name
を反映します。parent
ここで何が起こっているのですか?
あなたの洞察に感謝します!
cakephp - CakePHP saveAll() は結合テーブルを削除または更新しません
結合テーブルを自動的に更新/削除したい。これを行うための回避策として、saveAll() の前に deleteAll() を実行しています。
フォームを送信すると、レイアウト モデルとコンポーネント モデルは正しく更新されますが、レイアウト コンポーネント モデル (結合テーブル) は新しいデータを挿入しますが (これが必要です)、参照データを削除しません。
レイアウト モデル:
コンポーネント モデル:
レイアウト コンポーネント モデル (結合テーブル):
レイアウト コントローラー:
結合を自動的に削除するにはどうすればよいですか? これはCakePHPで可能ですか?
ruby-on-rails - Rails 3、新しいモデルBは古いモデルAと1:1であり、既存のAレコードごとに新しいBレコードを自動作成する方法
Rails v3.0.3元のスキーマにはcustomersテーブルがあり、アプリには100人の顧客のデータがあります。
移行により、cust_infoテーブルを1:1で追加します。例:
したがって、現在(新しいモデルを作成するために実行した後)、1:1の必須cust_infoレコードを持たないrake db:migrate
100個の「古い」顧客レコードがあります。
QUES(1a)(レガシーデータの更新) 100の既存の顧客レコードのそれぞれに必要な(空の) cust_infoレコードを生成するための「レールの方法」とは何ですか?
QUES(2)(今後)アプリを変更して、新しい顧客レコードを作成するときに、関連付けられたcust_infoレコードを同時に自動的に作成する方法を教えてください。