私は次のようなポリモーフィックな関連付けを持っています
class Certificate < ActiveRecord::Base
attr_accessible :certification_id, :certified_id, :certified_type
belongs_to :certification
belongs_to :certified, :polymorphic => true
end
class Certification < ActiveRecord::Base
attr_accessible :name, :slug
belongs_to :association
end
class Association < ActiveRecord::Base
has_many :certifications
attr_readonly :name, :id
attr_protected :name
end
User
モデルを想定
class User < ActiveRecord::Base
has_many :certificates, :as => :certified
end
association
ポリモーフィックアソシエーション内からオブジェクトにアクセスしようとしています
u = User.first
u.certificates
のインスタンスの配列を返しますCertificate
u.certificates.first.certification
のインスタンスを返しますCertification
しかし
u.certificates.first.certification.association
エラーを返しstack level too deep
、2回目の実行時にコンソール/サーバーがillegal hardware instruction
メッセージとともにクラッシュします
この表現はコードの美しさの女王ではないことは確かですが、うまくいくはずですよね。