benim Rails 2.3.8 app twitter modelini taklit etmeye çalışıyorum (yakut 1.8.7)Kendini referans Has_many: aracılığıyla özelleştirilmiş ile: Birincil anahtar konu
class Connection < ActiveRecord::Base
belongs_to :subject, :foreign_key => 'subject_id', :primary_key => 'user_id', :class_name => 'User'
belongs_to :follower, :foreign_key => 'follower_id', :primary_key => 'user_id', :class_name => 'User'
end
class User < ActiveRecord::Base
has_many :relations_to, :primary_key => 'user_id', :foreign_key => 'follower_id', :class_name => 'Connection'
has_many :relations_from, :primary_key => 'user_id', :foreign_key => 'subject_id', :class_name => 'Connection'
has_many :linked_from, :through => :relations_from, :source => :subject, :primary_key => 'user_id'
has_many :linked_to, :through => :relations_to, :source => :follower, :primary_key => 'user_id'
end
Bu bana "SystemStackError verir User.first.linked_from yaptığımda "yığın düzeyi çok derin" hata. Kullanmamın nedeni: standart kimliğin yerine user_id, birincil anahtarımın bir dize olması gerektiğidir.
İlişkilendirmeyi yapmak için ne yapabilirim, böylece User.first.linked_from ve User.first.linked_to?
Çalışıyor. Korku veren! Set_primary_key adında bir yöntem olduğunu hiç bilmiyordum. Teşekkür ederiz! – porkeypop
çalışır. Teşekkürler! zamanımı kurtardın –