問題タブ [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 - これはレールのバグですか?単一テーブルの継承について。
それで
すべてのサブクラスのアイテムを表示するには、Sub.all が必要です。その作成方法は? これはバグですか?
もう一度テストしたところ、テーブルに「タイプ」列が指定されていない場合は機能しましたが、「タイプ」列がある場合は失敗しました。
「タイプ」列を持つ「親」という名前のテーブルが 1 つだけあります。
私の環境: rails-3.0.0.beta3, ruby-1.9.2-pre
ruby-on-rails - Ruby on Rails で、モデル「動物」を生成し、次に「犬」が必要な場合、どのようにすればよいですか?
たとえば、モデルを生成した場合
そして、それから継承する他のモデル (Dog や Cat など) を作成したいのですが、rails generate model
もう一度使用する必要がありますか、それとも自分でファイルを追加する必要がありますか? を使用する場合、 Dog が Animal から継承する必要があることをどのように指定しますrails generate model
か?
モデル ファイルを自分で追加する代わりに使用rails generate model
すると、単体テスト ファイルとフィクスチャ ファイルも作成されると思います。移行ファイルも追加されますが、MongoDB を使用している場合を除き、移行ファイルはありません。
ruby-on-rails - ここでポリモーフィックな関連付けは適切ですか?
これが私が考えていることです:
これは完全に間違っていると確信しています。私がやろうとしていることは、ポリモーフィックな関連性が示されているのを見たのとは逆のようです。たとえば、Railsガイドから:
ここで、「所有」モデル(製品または従業員)は、多くのクラスの1つになります。「所有」モデルを多くのクラスの1つにしたいと思います。これらはすべて、別のクラスから基本動作を継承します。さらに、これらのサブクラスの動作はすべて十分に異なるため、STIは非常に非効率的です。私はここでかなり迷っています...あなたが与えることができるどんな助けにも感謝します!
編集:私がやりたいことを明確にするために...私はWidgetと呼ばれる「所有」クラスを持っています。ウィジェットは、非常に単純なWebアプリに沿ったものを表します。各ウィジェットは、いくつかの異なるレイアウトの1つで表すことができます。したがって、これらの異なるレイアウトクラスを定義しています。レイアウトは、外観と動作の両方でかなり異なる可能性がありますが、いくつかの共通の機能を共有しています。このため、その一般的な動作をWidgetLayoutクラスに抽出して、そこから継承できるようにしたいと思います。結局、どのウィジェットも1つの「特定の」レイアウト(情報、OneWayCommunicationなど)に関連付けることができます。このセットアップをどのように構成する必要があるのかわかりません。
編集(最後のもの、私は願っています!):ああ、あなたの例をもう一度見て、私はそれを見る。私が見逃しているのは、レイアウトに一般的な動作を継承させることだけです。だから、このようなものはうまくいくでしょうか?:
ruby-on-rails - クラスが多すぎますか?Rails STI
私は非常に大きなRailsアプリケーションに取り組んでいます。当初はあまり継承を使用していませんでしたが、コンサルタントから目を見張るような経験があり、モデルの一部をリファクタリングすることを検討しています。
このアプリケーションには、次のパターンがたくさんあります。
これにより、ビュー、ヘルパー、およびGraphSettingモデル自体に大量の条件が発生します。これはどれも良いことではありません。
次のような構造を使用するためにGraphTypeを削除する単純なリファクタリング:
これは私にとって完全に理にかなっており、テストを容易にし、条件文を削除し、後の国際化を容易にします。ただし、グラフは15〜30個しかありません。
おそらく100に近い「タイプ」を持つ非常に類似したモデル(例として使用するのは複雑)があり、それを2倍にする可能性があります。それらはすべて、継承した関係とメソッドを持ち、一部のメソッドは他のメソッドよりも多くのメソッドをオーバーライドする必要があります。それは完璧な使い方のように思えますが、その多くはただたくさんのように思えます。
200のSTIクラスは多くの人にありますか?私たちが見なければならない別のパターンはありますか?
知恵をありがとう、そして私はどんな質問にも答えます。
ruby - モデル+STI+ポリモーフィックアソシエーションに参加-ActiveRecordはこれを行うことができませんか?
質問は一番下にありますが、コードはその大部分を説明しています:)
コードのベースは次のとおりです。コードのコアに到達するために短縮されています。
そして、これはあなたがそれを使うときに起こることです:
私の質問は、関連付けられているサブクラスからその結合モデルを作成するときに、を介してではなくsubgroup.images << image
言うようにするにはどうすればよいですか?私はこれを理解することができませんでした。parent_type: "SubGroup"
Group
アップデート
ActiveRecordコアでこの1行を変更すると、完全に機能します。
...これはバグですか?
ruby-on-rails - 外部キー (ID) を使用した Rails 単一テーブルの継承
アソシエーション構造をモデル化する必要があり、アソシエーションは部門/サブディビジョン/セクションなどに分割されます。そのため、単純なエンティティ属性モデルを作成しました。
Rail の single-table-inheritance を使用したいのですが、type 列が文字列の場合にのみ機能するようです。私の質問は、私のアプローチでこれを達成する方法ですか? 外部キーを「タイプ」として使用しているため、最初に「タイプ名」を照会する必要があります。誰もこれをやったことがありますか?
ruby-on-rails - 親クラスがそれ自体のコントローラーを持たず、モデルだけを持ち、他のモデルと関係がある場合にSTIを実装します。Rails STI
私は次のシナリオを持っています
モデルABCには、コントローラーまたはビューがありません。ABCに関連するデータは、XYZビューとコントローラーから挿入されます。ユーザーは、ABCのタイプ値を設定します。これは、A、B、またはCのいずれかです。
また、タイプごとに、対応するSTIサブクラスをインスタンス化し、データを適切に保存する必要があります。ただし、ここではサブクラスがインスタンス化されておらず、データが完全に保存されています。しかし、サブクラスのコードがサブクラスで呼び出されていなかったため、サブクラスのコードを親STIクラスに書き込んだため、間違った方法で実行しています。
提案をして、いくつかの解決策またはチュートリアルを提供してください。
よろしくお願いします。
database-design - 単一テーブル継承は私のRails問題の正しい解決策ですか?
ご挨拶、すべて、
私はRubyonRailsでアプリケーションに取り組んでおり、アプリがアクセスする各ユーザー(Facebook、MySpace、Google、SalesForce、Twitter、WordPressなど)の一連の外部サービスを追跡する必要があります。ユーザーに代わって。一部のサービスでは、(暗号化された)ユーザー名とパスワードを保存する必要があります。一部のサービスでは、OAuthデータ、一部のOAuth2データなどを保存する必要があります。アプリが成長するにつれて、それぞれが独自の認証データのセットを持つ、さらに多くの種類のアカウントをサポートする必要があります。
各ユーザーはアプリケーション内で投稿を作成できます。これらの投稿を取得して外部サービスに送信し、ユーザーに公開します。次に、公開された投稿への応答を追跡します(Twitterでのリツイート、Facebookでのいいね/共有など)。
それで:
私は自分のService
タイプに単一テーブル継承を使用すること(たとえば、、、、、および単純なハッシュをシリアル化して認証データを保存すること)と、すべてのタイプのサービスが独自のモデルとテーブルである従来の正規化されたスキームを使用することWordpressService
について議論しています。ユーザーに関連付けられているすべてのサービスを簡単に繰り返すことができるようにしたいのですが、公開は任意のタイプのサービスに関連付けることができる必要があります(たとえば、公開はWordPress、Facebook、Twitterに送信される場合があります)。 。FacebookService
TwitterService
従来の正規化されたアプローチを使用して、そのようなモデル関係を実現できますか?それとも、これはまさにSTIが解決することを意図したものですか?
ありがとう。
ruby-on-rails - STIアソシエーションの単体テストを作成する方法RubyonRails
STIアソシエーションの単体テストを作成する必要がある場合は、どの手順を使用する必要がありますか。私は完全に混乱しています。いくつかの提案またはいくつかのチュートリアルへのリンクを提供してください。前もって感謝します
php - Discriminator 列を Doctrine2 の主キーの一部にすることはできますか?
Doctrine2 で単一テーブル継承を使用して、複数のサービスの OAuth 資格情報を保存しています。サービスの ID を主キーとして使用したいと考えています。ただし、これはすべてのサービスで一意というわけではありません。
ディスクリミネーター列とサービスの ID を主キーとして使用するようにデータベースをセットアップしましたが、Doctrine にディスクリミネーター列をキーとして (ディスクリミネーター列に加えて) 使用させる方法が見つかりません。docblock アノテーションを使用しています。識別子列を @Id フィールドとして追加すると、エラーが発生します。
フィールドを識別子列としてのみ定義すると、サービス ID が重複すると、一致するすべての行が更新されます。
とにかく、自動生成された it 値を使用する以外に、これを機能させるには?