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

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

ruby-on-rails - Railsのbegins_toと単一テーブルの継承が動作しない

私はBikeモデルとモデルを持っていComponentます。、などからいくつかのモデルが継承されComponentます。FrameChainCrankset

フォームを送信すると、パラメータは次のようになります。

私のコントローラーでは、次のコードが壊れています。

フォームをハックして次のパラメーターを生成すると、機能します。

ここに私のモデルがあります:

単一テーブルの継承が機能しています-問題なく呼び出すことができFrame.firstますComponent.all

私は気が狂っていますか?ネストされたパラメーターは通常の規則ではありませんか? それが次のように生成されます。

私は何を間違っていますか??

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

.net - 階層ごとの単一テーブルのマッピングエラー

次のマッピングを取得しました

と:

次のエラーが発生します

Module.CRM.Models.CallRecordの識別子が見つかりません。

弁別器を指定していませんか?

編集

さらに調査を行いました。ディスクリミネーターは私が使用すべきものではありません。crm_call_recordsのcall_record_idは、call_recordsのidを指します。マッピングファイルはどのように見えるべきですか?

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

ruby-on-rails - 単一テーブル継承の counter_cache

counter_cache が単一テーブルの継承で機能するかどうか疑問に思っています。

これらのモデルの場合:

それで、次のカウンターは機能しますか?

  1. それらのすべてが機能します
  2. それらのどれも機能しません
  3. questions_count仕事だけ
  4. のみsimple_questions_countcomplex_questions_count

どれ?3枚目ですが、あと4枚欲しいです。4 でない場合、4 を機能させるにはどうすればよいですか?

===更新===

次に例を示します。

だから今私は欲しい:

私の質問は、の基本的な動作は何:counter_cache => trueですか?単一テーブルの継承に適用することは可能ですか?

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

ruby-on-rails - Rails 3単一テーブルの継承とhas_manyの質問

親クラスにも has_many 関係が含まれているRails 3で単一テーブル継承モデルをセットアップしようとしています。残念ながら、私はそれを機能させることができません。例として、次の 3 つのクラスを示します。

そして、これをセットアップするために使用される移行は次のとおりです。

このように設定して、新しい SportsArticle を作成しようとすると、たとえば次のようになります。

私は常に次のエラーが発生します。

「TypeError: 文字列を整数に変換できません」

この問題を解決する方法がわかりません。オンラインで解決策を見つけようとしましたが、役に立ちませんでした。STI モデルを使用した経験のある人は何か間違っていると思いますか? 問題の診断に役立つ場合は、create メソッドに関するドキュメントへのリンクを次に示します

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

ruby-on-rails - Railsで単一テーブル継承を使用して単一の作成フォームを作成する

私は Rails で STI を使用しており、Car、Truck など、さまざまなタイプのサブクラスを持つ Vehicle オブジェクトを持っています。これは単純なアプリ用なので、この場合は STI で問題なく動作しますが、あらゆる種類の車両レコードを作成できる単一のフォームを作成するのに問題があります。

次のルーティングを使用します。

/cars と /trucks ルーティングをセットアップして、両方が同じフォームを指すようにすることができます。ただし、フォームは車両コントローラーを指しており、フォームの Vehicle オブジェクトを生成しているため、/cars url が Car オブジェクトを作成する必要があることを知る方法がありません。

/cars が Car.new または Report.new(:type => "Car") を使用してフォームのオブジェクトを作成することを本質的に知っているフォームを指すルーティング システムをセットアップしようとしています。/vehicles/:subclass のようなルーティング システムを動作させ、コントローラで params[:subclass] を使用することを考えましたが、そのようなルーティングを行う方法がわかりませんし、Rails によって引き起こされる他のルーティング エラーを回避することもできません。 「STIマジック。

URL を解析して値を取得することはいつでもできますが、それは危険で危険な方法のように思えます。

これを行うためのRailsの方法について誰かがアドバイスや経験を持っているかどうか知りたい. ありがとう!

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

ruby-on-rails - Rails で STI を使用すると ActiveRecord::SubclassNotFound エラーが発生する

Ruby on Rails 2.3.10 を使用しています。私はクラスを持っていSchoolます。私は STI を使用して、いくつかのサブクラスを提供してPrimarySchoolSecondarySchoolますUniversity

PrimarySchool.first期待どおりにPrimarySchool.last動作します。SecondarySchool.first期待どおりにSecondarySchool.last動作します。University.last動作します。

ただし、例外を発生University.firstUniversity.allせます。ActiveRecord::SubclassNotFound

生成された SQL は正しいです。

私は何が欠けていますか/間違っていますか?

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

ruby-on-rails - Rails2.3でのクラス継承または単一テーブル継承

次のシナリオがありますが、クラス継承と単一テーブル継承のどちらを使用すべきかわかりません。

私がやりたいのは、それぞれの異なるリストタイプを異なるクラスにすることです。問題は、それを行う場合、オブジェクト/クラスmain_list_idknown_list_id、、を追加する必要があるということです。これは面倒なようです。私は次のようなことをすることができますか?regular_list_idWord

そして次のようなもの:

@user.main_list.find_by_name("MainList")

これに関する唯一の問題は、誰かがRegularList「MainList」という名前を付ける可能性があることです。

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

ruby-on-rails - RailsS​​TIアソシエーションとネストされたリソース

わかりました、それで私はここに私が理解できない奇妙なパターンを持っています。

CallListをベースモデルとしてSTIを設定し、City&Stateを継承しています。都市は州に属しています(州には多くの都市があります)。

キャンペーンには多くのコールリストがあるので、それらすべてを表示したいと思います。私はcampaign.call_listsをループし、時にはCities、時にはStatesを取得します。それらにリンクしたいときは

これらのルートがある場合、これは正常に機能します。

ただし、州内の都市をネストすると、link_toヘルパーは適切なルートを見つけられません。これを行う簡単な方法はありますか、それとも手動でパスヘルパーを構築する必要がありますか?

0 投票する
3 に答える
1855 参照

ruby-on-rails - rails:作成中にSTIタイプを設定しようとしているときに、これらの保護された属性に一括割り当てすることはできません

RailsとRubyの学習を始めたばかりですので、これがあまりにも馬鹿げている場合はご容赦ください。

私のアプリにはいくつかの異なるAppModuleタイプがあり、動作は異なりますがデータは類似しているため、単一テーブル継承を使用してそれらを保存します。

ただし、ユーザーが必要なタイプを明示的に選択できるようにしようとするとapp_modules/new.html.erb、警告が表示されWARNING: Can't mass-assign these protected attributes: typeます。関連するコードは次のとおりです。

モデルファイルで明示的に設定しようとattr_accessible :typeしましたが、機能しませんでした

レール2.3.8とルビー1.8.7を使用しています。

どんな助けでも大歓迎です、ありがとう...

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

ruby-on-rails - 一部のサブクラスでテンプレートが欠落している場合、レールはスーパークラスのテンプレートにリダイレクトします

Rails プロジェクトに Single-Table-Inheritance を使用しています。そして、スーパークラスに実装することで、サブクラス間でいくつかの共通関数の機能を共有できるかどうか疑問に思っていました。

スーパークラスのビューもリサイクルできますか? それとも、一般的な関数の新しいビューを作成する必要がありますか? これはあまり乾燥していません。DRYアプローチとは?を編集する必要がありますか、routes.rbまたはこれを動的に達成する別の方法はありますか?

ベスト、E.