問題タブ [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.

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

ruby-on-rails - Rails 3.1ビルドの関連付けが機能しない

わかりましたので、パッケージを返すメソッド (service_package_id と payment_plan_id) が渡され、有効です。パッケージ モデルは、サービス パッケージと支払いプランの両方に属し、これらのモデルにはそれぞれ多くのパッケージがあります。

@spackage 行まではすべて素晴らしいです。ロガーは service_package_id を取得しますが、次のログが発生すると、nil クラスで nomethoderror が返されます。@spackage がゼロなのはなぜですか? これは Rails 3.0.9 では動作しますが、少なくとも私の開発マシンでは 3.1 rc4 では動作しません。何かご意見は?

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

ruby-on-rails - RailsRichAssociation-アソシエーションモデルへの上書き

3つのモデルPATIENTS、NURSES、およびそれらの関連モデルAPPOINTMENTSがあるとします。

今週、すべての患者は看護師と会う必要があります。

患者には多くの看護師がいて、看護師には多くの患者がいます。同様に、患者には多くの予定がありますが、看護師ごとに1つだけであり、看護師には多くの予定がありますが、患者ごとに1つだけです。

明らかに、予定は患者と看護師の両方に属しています。

しかし、私はまた、患者が現れたかどうかにかかわらず、看護師がチェックできる方法を望んでいます。私はこれを次のように移行内に実装しました。

終わり

コンソールでは、すべてのインスタンスを作成でき、次のことができます。

ここで、質問があります。その予定のナースがブール値をTRUEに編集できるようにするには、どうすれば実装できますか?これまでのところ、次のように入力して、予定のインスタンスの値を変更できます。

しかし、これは私が望むものではありません。看護師がこの関連付けを変更し、患者が何も変更しないようにロックアウトできるようにしたいと思います。

これにリッチアソシエーションを使用するべきではありませんか?

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

ruby-on-rails - 子モデルで親の値を取得する

RsvpRegistrationsというモデルがあります

次のような検証では、親の「rsvp」オブジェクトの値を使用する必要があります。

(Rsvp.phoneはブール値です)

しかし、これは機能しません。私が得るエラーは未定義のメソッド`rsvp'です。親オブジェクトとその値にアクセスするにはどうすればよいですか?

動作するようになったら、他の同様の検証を実行する必要があるため、親の「rsvp」を一度取得してから、他の検証で参照する必要があると考えています。

前もって感謝します。

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

ruby-on-rails-3 - このモデルの関連付けを修正するにはどうすればよいですか?

アルバム モデルと写真モデルを作成し、既存の Rails アプリケーションに追加しました。写真モデルをアルバム モデルに属させ、アルバム モデルをユーザー モデルに属する既存のプロファイル モデルに属させました。それらを間違って関連付けたかどうか、なぜエラーが発生するのかわかりません。

URL/albums に移動すると、すべて正常に動作しますが、URL/profiles/1 に移動すると (以下のコードは、views/profile/ フォルダーの show.html.erb ファイルに貼り付けられます)、以下のエラーが表示されます。

これは私には解けない単純な問題です。4 つのモデル ファイルは次のとおりです。

アルバム.rb:

Profile.rb:

写真.rb:

ユーザー.rb:

プロファイル コントローラーには次のスニペットがあります。

ビューにはこれがあります:

アクション コントローラーの例外は次のように表示されます。

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

entity-framework - PKなしでEntity Frameworkのプロパティをマッピングしますか?

3 つのテーブルを持つ EF モデル (VS2010、.NET4) を作成しようとしました。各テーブルには Sync_ID と呼ばれる PK があります。

TABLE_HEAD: (Sync_ID (PK), GRID_ID int, SERIALNUMBER int, YEAR int)

TABLE_POINT: (Sync_ID (PK), GRID_ID int, SERIALNUMBER int, YEAR int,POINT_NUMBER int)

TABLE_PLANT: (Sync_ID (PK), GRID_ID int, SERIALNUMBER int, YEAR int,POINT_NUMBER int,PLANT_NUMBER int)

関連付け: TABLE_HEAD "1 対多" TABLE_POINT "1 対多" TABLE_PLANT

ご覧のとおり、TABLE_HEAD の GRID_ID、SERIALNUMBER、YEAR は、TABLE_POINT の GRID_ID、SERIALNUMBER、YEAR にマップする必要があります。

また、TABLE_POINT の GRID_ID、SERIALNUMBER、YEAR は、GRID_ID、SERIALNUMBER、YEAR、POINT_NUMBER にマッピングする必要があります。

私の最初のアプローチは、PK としてグループ化された GRID_ID、SERIALNUMBER、YEAR を使用することでしたが、それは条件違反になります。

したがって、唯一の方法は、Sync_ID を PK として使用することです。しかし、上記のように他のフィールドをマッピングするにはどうすればよいでしょうか? PK_Columns のみをマップできますか?

あなたが私を助けるためのアイデアを持っていることを願っています. 他のアプローチも歓迎します。よろしくお願いします !

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

ruby-on-rails-3 - 参照されているすべてのテーブルからレコードを削除するにはどうすればよいですか?

こんばんは、Overflower の皆さん、

モデルの関連付けに関する小さな問題。私はこれらのモデルの関連付けを持っています:

したがって、基本的Categorizationに次の列になります (日付/時刻スタンプは省略されます): categorization_idexhibit_idおよびcategory_id.

私の問題は、Exhibit を削除すると、Categorization テーブルの参照が削除されないため、ビューで DB エラーが発生することです。最初に展示品をカテゴリから割り当て解除してから、安全に削除する必要があります。または(たとえば、私が削除した展示物に があると仮定すると:exhibit_id=>'1'rails consoleCategorization.find_by_exhibit_id(1).destroy

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

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

ruby-on-rails - Rails3HABTMワンライナー

has_and_belongs_to_many結合テーブルを生成するためにワンライナーが必要です。そうでない場合は、Djangoに戻ってより単純な多対多の構成を取得します。

rails3はモデルarticle_tagsを生成します[..]

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

ruby-on-rails-3 - モデルには、別のモデルに属する 2 つの属性があります

次のようなモデルがあります。

登録ユーザーがいない場合は、icon_id と user_icon id を保存する必要があります。

これは正しいです?次の手順でアイコンにアクセスできますか。

この質問を改善したいので、よりよく説明させてください。

同じモデルの 2 つのオブジェクトを別のモデルに保存したいと考えています。

したがって、Greeting は Icon に属しますが、Greetings テーブルには Icon テーブルからの外部キー用の 2 つのフィールドがありますが、異なるラベルが付けられています。

1 つの外部キー属性を icon_id と呼び、もう 1 つを user_icon_id と呼びます。

これを行うには、次の方法が正しいです。

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

doctrine-orm - Doctrine2の3つのエンティティ間の1対多の関係

User、Office、PhoneNumberの3つのエンティティがあります。ユーザーには多くの電話番号があり、オフィスにも多くの電話番号があります。

問題は、Doctrine2でこれらのエンティティの関係をどのように表現するかです。

  1. 最初は、双方向の1対多の関連付け([ユーザー]->[多数]->[PhoneNumbers])(Office->[多数]->[PhoneNumbers])を使用しようとしましたが、PhoneNumberには2つのマッピングフィールドがあります。1つはユーザー用、もう1つはOffice用です。 。マッピング外部キーの1つをnullにすることができなかったため、このソリューションは機能しません。

  2. 私の2番目のアプローチは、PhoneNumberに2つのエンティティと1つのスーパークラスを使用することでした。PhoneNumberスーパークラスは、マッピングフィールドを除くすべての共通フィールドを定義しています。エンティティUserPhoneNumberとOfficePhoneNumberは、PhoneNumberエンティティを拡張し、異なるマッピングフィールドと異なるテーブルを指定しました。(OfficePhoneNumbers用の1つのテーブル、UserPhoneNumbers用の別のテーブル)

    このソリューションは実際には機能しますが、1つの単純なエンティティを表すために3つのクラスがあるのは非常に醜いです。

  3. 私の3番目のアプローチは、単方向の1対多マッピングを使用することです。これにより、PhoneNumberエンティティのマッピングフィールドが不要になります。問題は、多対多フィールドにカスケード削除を使用すると、レコードを削除するときに整合性制約に違反することです。

    カスケード削除オプションを省略すると、UserまたはOfficeを削除した後、PhoneNumberはデータベースに残ります(ただし、マッピングテーブルのレコードは削除されます)。

このタイプの関連付けを処理するための最良の方法は何ですか?

ありがとう

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

ruby-on-rails - 関連付けによる :has_many 内の複数のエントリ

Rails 3 を使用して、現在取り組んでいる Rails 開発について助けが必要です。このアプリは、数か月前に開始直後に提供され、それ以来、Ruby が好きになりました。

チーム テーブルを介してリソースを割り当てることができる一連のプロジェクトがあります。

チーム レコードには、開始日と終了日があります (つまり、リソースがプロジェクトに割り当てられ、割り当てが解除された日)。

ユーザーがプロジェクトに割り当てられ、プロジェクトから割り当て解除され、後日プロジェクトに再度割り当てられる場合、終了日を上書きするのではなく、Teams テーブルに新しいエントリを作成して、次のことができるようにしたいと考えています。リソースが特定のプロジェクトに割り当てられた日付を追跡します。

だから私の質問は、関連付けを介して :has_many に複数のエントリを持つことは可能ですか?

ここに私の協会があります:

Project.rb には次の関数もあります。