Tablo 'kullanıcıları' var ama bir kullanıcı başka bir kullanıcının yöneticisi olabilir, bir kullanıcı diğer birçok kullanıcının yöneticisi olabilir, bu yüzden bire-bir ilişki ve sadece bir tablo içerir . heres yaklaşımım:Foreign_key işaretleme aynı tabloya nasıl eklenir?
1. 'manager_id' (gerçekten başka bir kimliği değiştirir) sütunu kullanıcı tablosuna ekledim.
Kullanıcı modeli sınıfında 2.I've tanımlanan ilişki i onun tüm güzel başka kullanıcıların id biri kullanıcıların manager_id 'ayarlarsanız
belongs_to :manager, foreign_key: 'manager_id',class_name:'User'
has_many :minions, class_name:'User'
Şimdi, raylar konsolda söylüyorlar. Ancak 'user.manager' veya 'user.minions' gibi yöntemleri kullanmaya çalışırsam, bu yöntemlerin tanımlanmadığını söyler. Yanlış mı gittim? Bu sadece ben yukarıdaki açıklamadan anlaşılmaktadır şeyin bir kroki, çoğaltılabilir edilir
class User < ActiveRecord::Base
self.inheritance_column = :child_class
has_many :minions, :foreign_key => :parent_id, :as => :parent
belongs_to :parent, :polymorphic => true
end
:
Tam olarak hata iletisi nedir? – Pavan
NoMethodError: # için undefined method 'minions'> –
EasternDude
Sınıfın kendisiyle değil, bir sınıf örneğiyle yapmalısınız. User.find (1) .minions' veya 'User.find (1) .manager' – Pavan