class User < ActiveRecord::Base
# Parents relationship
has_many :children_parents, :class_name => "ParentsChild", :foreign_key => "child_id", :dependent => :destroy
has_many :parents, :through => :children_parents
# Children relatiopnship
has_many :parents_children, :class_name => "ParentsChild", :foreign_key => "parent_id", :dependent => :destroy
has_many :children, :through => :parents_children
...
end
Ve parents_child.rb içinde: Şu anda
class ParentsChild < ActiveRecord::Base
belongs_to :parent, :class_name => "User"
belongs_to :child, :class_name => "User"
end
, bu mümkün Ebeveynler için birden fazla kez aynı kullanıcıyı eklemek için "çocuk ekle" formunda (sadece vanilya iç içe öznitelikleri kullanarak). Veri katmanında (parent_id, child_id)
üzerinde (tabii ki bir geçişi kullanarak) benzersiz bir dizine doğru eğilmeme rağmen, ParentsChild ilişkisinde benzersizliği zorlamaya dair 'doğru' yolun ne olduğundan emin değilim.
Ayrıca, UsersController :: update yönteminde benzersizlik kısıtlamalarını da uygulayabildiğime, ancak bu kodu değiştirmekten kaçınmayı tercih edeceğime eminim (şu anda formda yuvalanmış öznitelikler sayesinde ebeveynlere/çocuklara başvurmuyor)/model) mümkünse. "Doğru" çözümü kullandığımızdan emin olmakla ilgili olarak çok endişeliyim. Bunu yapmak için 'doğru' veya 'raylar' yolu nedir? has_many kullanarak
Kesinlikle ilk mümkün olan en basit çözümü baktım gerekirdi. Teşekkürler! –
Evet! Bununla çok uzun zaman geçiriyorum, cevabım tam ihtiyacım olan şeydi. – Matthew
veya raylarda 4, 'has_many: ebeveynler, -> {uniq},: through =>: children_parents' – courtsimas