問題タブ [sti]

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 に答える
294 参照

ruby-on-rails - STI と仮想属性の継承 (Rails 2.3)

Commentable がスーパークラスで、NewsComment がサブクラスである STI 関係があるとします。コメンタブルで私は持っています:

そしてニュースコメントで:

NewsComment をインスタンス化すると、VA self.opinionated は継承されません。何故ですか?また、NewsComment に Commentable からの継承を「強制」するにはどうすればよいでしょうか。

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

ruby-on-rails - 「タイプ」列を使用しないRails STI mysqlクエリ

私は次のモデルを持っています:

問題は、マークまたはメッティングの「タグ」または「用語」を探すと、そのマークまたはメッティングのすべての「タグ」および「用語」を取得することです。例えば:

この場合、Metting にはタグではなく 1 つの用語のみが関連付けられています。Rails で生成されたクエリは、タグと用語を区別するために、"Metum" の "type" 列を使用していません。上記の呼び出しでタグと用語のみが返されるように、これを修正する方法はありますか?

ありがとう。

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

sql - この状況でSTIを使用しても大丈夫ですか?

peoplepersonclientmanagerという名前のテーブルを持っていますaccountant。また、テーブル内のもの以外に、それぞれに特別なテーブル列がありpeopleます。

私が今行っているのはperson_id、各テーブルで a を使用することです...しかし、同じテーブルを使用し、それぞれに異なるモデルを使用する方がはるかに簡単だと思うので、それらを個別に管理できます。

私はそれをすべきですか?

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

ruby-on-rails - Rails Single-Table Inheritance (STI): 派生モデルへの依存関係

Rails 2.3 アプリケーションで STI を使用しようとしています。

次のようにモデル化しました。

基本クラス:

そのサブクラス:

form_for :tariffを作成しようとすると、 Tariff の未定義のメソッド `tariffing_periods'が取得されます。このシナリオをモデル化するにはどうすればよいですか? 親クラスに has_many 関連付けを配置する必要がありますか?

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

ruby-on-rails - STI の実装に関する 2 つの簡単な質問

ユーザーモデルにSTIを使用しています。User クラスと、サブクラスの Seller と Customer があります。ユーザーが両方になることはできないので、この場合は STI でよいと思います。2 つの質問があります。

  1. User インスタンスの作成を制限して、販売者または顧客のみを作成できるようにするにはどうすればよいですか? Type の存在を検証できると思いますが、それは私にはあまり適切ではありません。

  2. STI の売り手と顧客用に別のフィールドを追加できますか? どのように?

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

ruby-on-rails - Rails:STI構造のサブクラスにポリモーフィックな関連付けが必要ですか?

私は趣味のプロジェクトに取り組んでおり、STI サブクラス、、、などの抽象モデルEventMealあります。親モデルには、、、などがあります。OutingMedicationEventstart_timeend_timedescription

さまざまなサブクラスのネストされたリソースが必要です。たとえば、Imageクラスの複数のインスタンスを任意のEventサブクラスにアタッチできるようにしたいと考えています。MedicineクラスのMedication複数のインスタンスをエンティティ、Locationtoの複数のインスタンスなどにアタッチできるようにしたいOuting.

ポリモーフィズムを検討する理由は、おそらく、さまざまなタイプのネストされたリソースのいずれかを のサブクラスのいずれかにアタッチできるように柔軟性を提供することです。これにより、たとえば、Event.誰かが「ビタミン D サプリメント」の薬をMeal.

私の質問は次のとおりです。

  1. ネストされたリソースは多態的であるべきですか?
  2. それらをポリモーフィックにすると、すべてのインスタンスがEvent型テーブルに含まれますか?
  3. もしそうなら、私はそれらをhas_many関係にするべきですか?
  4. has_manyポリモーフィックに比べてパフォーマンス上の利点はありますか?
0 投票する
1 に答える
229 参照

ruby-on-rails - ビューとコントローラーの作成時にSTIタイプにアクセスします

こんにちはみんな私は2モデルのクライアントと食事をしました。

client.rb

食事.rb

ビュー/クライアント/_form.html.erb

食事の種類を保存すると、クライアントのindex.html.erbに表示されません(空白です)。問題は何ですか?次のコントローラーを使用して食事の種類(「昼食」など)をクライアントに与えることで、クライアントを作成するにはどうすればよいですか。

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

ruby-on-rails - Rails、STI、および'が'になります-f.object.errorsが表示されません

私の質問は、なぜ.becomesエラーを新しいオブジェクトに渡さないのですか?これは予想される動作ではありませんか?


Railsアプリには次の単一テーブル継承クラスがあります。

LegalDocument同じコントローラーと一連のビューを使用してsとsの両方を編集したいので、次のアクションMarketingDocumentを使用しています。DocumentsController < ApplicationControllereditupdate

そして私のedit見解では次のとおりです。

  • タイトルを入力すると、ドキュメントが正しく更新されます。
  • タイトルを空白のままにすると、編集ビューに戻りますが、エラーは表示されません。

f.object.errorsデバッグから、がnil であるため、表示されていないことがわかります。ただし、デバッグから、予想どおり、nilではないこともわかります。@document.errors


私の質問は、なぜ.becomesエラーを新しいオブジェクトに渡さないのですか?これは予想される動作ではありませんか?

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

ruby-on-rails - Rails Sti:シングルパス、異なるコントローラー

STIクラスを持っている:

各クラスのコントローラー、

そしてルーティング:

FirstTypePageControllerによるFirstTypePage、SecondTypePageControllerによるSecondTypePageをシングルパスで処理する方法は?

すなわち

user / 1 / page / 2は、「ページ2」タイプが「FirstTypePage」の場合はFirstTypePageControllerによって、「ページ2」タイプが「SecondTypePage」の場合はSecondTypePageControllerによって処理されます。

更新:私の解決策:

このソリューションは、少量のページタイプで高速に動作し、大量のページのルーティングに使用されるメモリサイズを管理できると思います。

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

ruby-on-rails-3 - has_many を使用した Rails と STI はサブクラスを認識しません

私は次のものを持っています:

したがって、シリーズには多くのコンポーネントがあり、コンポーネントはシリーズに属します。STI を使用して、コンポーネントをベース、シャフト、およびキャピタルにサブクラス化します。

ただし、シリーズに属するコンポーネントをリストしたい場合、コンポーネントの種類ごとに取得します

おそらく、Rails と STI について本当に基本的なことが欠けているのでしょう。これは機能するはずですか?(注意してください、テーブルに型列があり、その中にクラスがあります。Stackoverflow の他の場所で提案されているように、初期化ファイルにサブクラス定義を「必要」にしました)