シナリオを想像してください:
さまざまなタイプの生徒がいるクラスがあります。すべての学生は似たような属性を持っていますが、各タイプの学生には独自の属性もあります。そのため、MTI を使用して共通の属性をテーブルの students に保持し、個々の属性をそれぞれのテーブルに保持し、ポリモーフィズムを使用して、クラスの観点からそれらを処理するときに学生の型を抽象化しました。このチュートリアルに従いました: http://techspry.com/ruby_and_rails/multiple-table-inheritance-in-rails-3/。
これから、これらのモデルにたどり着きました:
class Clazz < ActiveRecord::Base
has_many :students
end
class Student < ActiveRecord::Base
belongs_to :stu, :polymorphic => true
belongs_to :clazz
end
class Student1 < ActiveRecord::Base
has_one :student, :as => :stu
end
class Student2 < ActiveRecord::Base
has_one :student, :as => :stu
end
私の問題は、特定の学生をインスタンス化したいときに発生します(学生を介してクラスに間接的に関連付けられています)。特定の学生との接続がなく、直接インスタンス化しようとすると、「:class」フィールドを認識しないと表示されるため、クラスから実行できません。
Student1.new(:clazz => @clazz, ... [other atributes]...)
unknown attribute: :class
これを達成する方法について誰かが私にヒントを与えることができますか? Tks