-1

私は次のシナリオを持っています

class XYZ < ActiveRecord::Base
has_many :abcs
end

class ABC < ActiveRecord::Base
belongs_to :xyz
end

class A < ABC
end

class B < ABC
end

class C < ABC
end

モデルABCには、コントローラーまたはビューがありません。ABCに関連するデータは、XYZビューとコントローラーから挿入されます。ユーザーは、ABCのタイプ値を設定します。これは、A、B、またはCのいずれかです。

また、タイプごとに、対応するSTIサブクラスをインスタンス化し、データを適切に保存する必要があります。ただし、ここではサブクラスがインスタンス化されておらず、データが完全に保存されています。しかし、サブクラスのコードがサブクラスで呼び出されていなかったため、サブクラスのコードを親STIクラスに書き込んだため、間違った方法で実行しています。

提案をして、いくつかの解決策またはチュートリアルを提供してください。

よろしくお願いします。

4

1 に答える 1

0

ABCモデルにtype属性があり、これらのクラスのインスタンスを保存するときに属性が「A」、「B」、または「C」に正しく設定されていることを確認してください。

ABC.find友人はそれぞれのクラスのインスタンスを返す必要があります。

新しいオブジェクトを作成するときは、もちろん、new入力パラメーターに応じて正しいサブクラスを呼び出すために、コントローラーにコードが必要になります。

于 2010-09-15T08:28:12.293 に答える