問題タブ [single-table-inheritance]
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 - 単一テーブル継承 (STI) 列の関連付け
単一テーブルの継承を使用する場合、異なるモデルに固有の列を設定しないように注意する必要がありますか? 各モデルが使用する列を指定する方法はありますか?
ruby-on-rails - Rails での STI の継承。検索に関する問題
継承構造が原因で、STI テーブル内のレコードの検索に問題があります。
問題は、AuthUser モデルでは find が機能しないことです。クエリはタイプ「AuthUser」を探しており、他の 3 つの可能性は含まれていません。
編集:これをいじっている間、それは機能し始めましたが、ClientAdmin と FieldUser に対してのみ機能するように思われるため、この機能を組み込む必要があるようです。
ruby-on-rails - キーとしての「type」列とのSTIおよびhas_manyの関連付け
さまざまなタイプのプロジェクトを管理するために単一テーブル継承を使用しています。各プロジェクトタイプに関連するいくつかの情報を保存することにしました。そこで、「model_type」フィールドを主キーとして新しいテーブル「project_types」を作成しました。主キーの値は、「プロジェクト」テーブルの「タイプ」フィールドの値です。問題:ProjectオブジェクトProjectTypesオブジェクトに関連付けようとすると、常にnullが返されます。
ProjectTypesプロジェクトに関連付けられたプロジェクトを取得することはOKです。正しく動作させる方法はありますか?
モデル:
移行:
ruby-on-rails - Rails で単一テーブルの継承レコードを作成する
アプリケーションに単一テーブル継承を使用しています。私のポリモーフィック タイプは Maintenance で、現在、OilChange という名前のサブタイプが 1 つだけあります。コントローラーの create メソッドでレコードを作成する際に問題が発生しています。これがコードです。
params[:maintenance] ハッシュにはキー {:name, :type} があります。次のように出力することで、それらの存在と値を確認できます
:type キーの値として「OilChange」を渡すと、Maintenance レコードのタイプは Maintenance であり、OilChange ではありません。REPL コンソールでレコードを見つけることで確認できます。タイプ フィールドは nil です。次の行を追加することで、思い通りに動作させることができます。
しかし、それは醜いです。私が疑問に思っているのは、名前フィールドがちょうど見つけるのと同じように、作成メソッドがタイプフィールドを設定しないのはなぜですか?
表示される 2 つのタイプは、私の schema.rb では次のようになります。
私のモデルはこのように見えます。
ティア!
ruby-on-rails - Rails attr_accessible が :type? で機能しない
単一テーブルの継承モデル タイプをフォームに設定しようとしています。したがって、属性 :type の選択メニューがあり、値は STI サブクラスの名前です。問題は、エラー ログが出力され続けることです。
警告: これらの保護された属性をまとめて割り当てることはできません: type
だから私は "attr_accessible :type" をモデルに追加しました:
コントローラーで .update_attributes() が呼び出された後も、ContentItem には :type=nil が残っています。フォームから :type を一括更新する方法はありますか?
single-table-inheritance - Ruby on Rails での複数テーブルの継承と単一テーブルの継承
私はここ数時間、どのルートに行くべきかを考えて苦しんでいます。通知モデルがあります。今までは notification_type 列を使ってタイプを管理していましたが、通知のタイプごとに動作が異なるため、別々のクラスを作成したほうがよいと思います。
現在、通知を送信する方法は 3 つあります: SMS、Twitter、E メール
各通知には次のものが含まれます。
性感染症は良い候補のようですね。もちろん、Twitter/SMS には件名がなく、Twitter には sent_people_count、valediction はありません。この場合、彼らはほとんどの分野を共有していると言えます。ただし、Twitter の「reply_to」フィールドと DM のブール値を追加するとどうなるでしょうか。
ここでの私の要点は、現時点では STI は理にかなっているということですが、これは、MTI から始めるだけでなく、将来的に自分自身を蹴っている可能性があるということですか?
さらに複雑なことに、私は一種の通知である Newsletter モデルが必要ですが、違いは event_id または delivery_by を使用しないことです。
通知基本クラス フィールドの約 2/3 を使用して、通知のすべてのサブクラスを確認できました。STI は簡単に使用できますか? それとも MTI を使用する必要がありますか?
ruby-on-rails - many_to_many、sti and will paginate
私は次のコードを持っています
わかりました、よさそうです。私はすべてのNewsArticleをカテゴリから取得しようとしています
そして私は見る
この問題を解決するにはどうすればよいですか?
ruby-on-rails - Rails:多くのシステムテーブルから供給されたレコードにデータをロックするにはどうすればよいですか?
私は現在、保険に基づいた Rails アプリケーションを構築しています。スタッフがシステム テーブルを制御できる管理セクションがあり、ほとんどはドロップ ダウン リストに表示されますが、独自の関連付けを持つより複雑なものもあります。このアプリケーションの主なモデルはポリシーです。これは、他の多くのテーブル (原告、被告、カバーのレベル、ユーザーなど) の情報を保持/リンクする必要があります。アドレスなどにリンクする人
ポリシーがリンクするより複雑なテーブルの 1 つは、保険料、支払いなどを決定するための財務情報を保持する全体的なカバー レベルです。
ポリシーが作成されたら、そのすべてのデータのスナップショットを作成する必要があります。後で管理者ユーザーによってポリシーが修正された場合、関連するデータであっても、バージョン管理が必要です。
誰かがこの問題に対する一般的な解決策を持っているかどうか疑問に思っています。現在、孤立したレコード、単一テーブルの継承、システム テーブル リンクをそのままにしてそのデータを編集不可にすること、データをポリシー テーブルのフィールドにコピーすること (編集時にテキスト ボックスにし、選択ボックスにすること) について熟考しています。 create) またはライブ用とテンプレート用の 2 つのテーブルを作成します。
これまでのところ、私が考えることができる最善の方法は、アプリケーションのニーズに基づいて上記のさまざまな方法を集めたものです。これは、アプリケーションの一般的な問題に違いない!? この種の問題に取り組む方法について、より良いアイデア/アドバイスはありますか?
entity-framework - Entity Framework 4 の POCO エンティティを使用した階層継承ごとのテーブル
私たちの組織は、v4 がリリースされたら、Entity Framework での標準化を目指しています。その結果、永続化のために NHibernate を使用するアプリケーションを、POCO サポートを使用して EF4 に移行するには何が必要かを検討しています。いくつかの場所では、単一テーブルの継承 (Table Per Hierarchy とも呼ばれます) を使用しています。以下を使用して動作させることができませんでした。
Payment (基本クラス [抽象的である必要がありますが、そこにも問題があります]) CreditCardPayment (具体的な実装) ACHPayment (具体的な実装) CheckPayment (具体的な実装)
現在、基本クラスのプロパティのみを使用してそれらをマッピングしています。これらのクラスはすべて同じネームスペースにあります。データベースには PaymentTypeId と呼ばれる識別子があるため、Payment マッピングには「When PaymentTypeId = 0」という条件があります。各サブクラスには、異なる値を持つ同じ条件があります (つまり、CreditCardPayment = 1 など)。
DataContext.Payments.ToList() (DataContext は ObjectContext から継承) を使用してすべての支払いのリストをそれぞれ読み込もうとすると、次の例外が発生します。
「ID 'DataLayer.DataModel.CreditCardPayment' のタイプのオブジェクト マッピングが見つかりませんでした。」
POCO CreditCardPayment クラスは POCO Payment クラスと同じ名前空間 (実際には同じファイル) に存在するため、これが何を意味するのかわかりません。
私は何が欠けていますか?
ruby-on-rails - 2つの単一テーブル継承モデル間の関係
私は次の2つのモデルを持っています
と
会社であろうと個人であろうと、1つの連絡先に多くのContactFields(住所と電話番号)を持たせたいのですが...では、それらの連絡先が多く、所属しているのはどこに置くべきですか?ありがとう