次のドメイン クラスがあります。
class Rating < ActiveRecord::Base
validates :kind_id, presence: true # Kind of rating (Class, Type, ...)
end
レーティングは、パイロットが操縦できる航空機のクラスまたはタイプを指定します。パイロットにクラス レーティングがある場合、どのクラスかを知る必要があるため、ID を STI テーブルに保存します。
class KlassRating < Rating
validates :klass_id, presence: true
end
パイロットにタイプ レーティングがある場合、どのタイプかを知る必要があるため、ID を STI テーブルに保存します。
class TypeRating < Rating
validates :type_id, presence: true
end
これに関する問題は、フォームでユーザーからの入力を取得する方法です。私が今持っているフォームRating
は、ユーザーがドロップダウンでクラスまたはタイプの評価を選択したかどうかに関係なく、常に をインスタンス化します。したがって、私の検証は決して評価されません。
Rails で適切な派生クラスをインスタンス化するにはどうすればよいですか?