cevap

6

şu anda Raylar 3.0.7 ile çalışıyorum ve polimorfik tip active_record-3.0.7/lib/active_record/association.rb tanımlanan ediliyor, hat 1773.

def create_belongs_to_reflection(association_id, options) 
    options.assert_valid_keys(valid_keys_for_belongs_to_association) 
    reflection = create_reflection(:belongs_to, association_id, options, self) 

    if options[:polymorphic] 
    reflection.options[:foreign_type] ||= reflection.class_name.underscore + "_type" 
    end 

    reflection 
end 

o "_type" ekleyerek daha sonra class_name.underscore arayarak ve gibi Öyle görünüyor . Bu ray 3.1 için biraz farklı olabilir, ancak bu iyi bir başlangıç ​​yeri olmalıdır.

+2

Ve 'class_name ',' @class_name || = seçenekler [: class_name] olarak tanımlandı || derive_class_name 'yanılmıyorsam. 'derive_class_name' name.to_s.camelize'dir. Yani sadece Model.name.to_s.camelize çağırıyor ve ben 'name' yöntemini geçersiz kılmalıyım? – Robin

+0

Bu işe yaramalı. –

+0

O yaptı :) Teşekkürler – Robin

İlgili konular