#ruby-on-rails
#ruby-on-rails
Вопрос:
У меня есть n-уровневая партнерская система, которую я пытаюсь использовать, чтобы я мог получать подсчеты и списки дочерних аффилированных лиц. У меня есть, среди прочих полей, «id» и «affiliate_id» для каждой записи.
def find_affiliates_under(affid)
affs=Array.new
Affiliate.find(:all, :conditions => "affiliate_id = " affid.to_s, :select => :id).each do |a|
affs.concat(find_affiliates_under(a.id))
end
return affs.uniq
end
Что я делаю не так? Был бы признателен за указатель от кого-то с большим опытом работы с Ruby
Спасибо!
Ответ №1:
Вы id
‘ы или вы также ищете сами вложенные объекты. Устанавливая select => :id
опцию, вы будете выбирать только id
для каждого объекта.
Могу ли я порекомендовать взглянуть на awesome_nested_set . Я думаю, это позволит достичь того, что вы пытаетесь сделать, сэкономив при этом некоторое время.
Комментарии:
1. В этом случае, например, я просто хочу посчитать дочерние элементы. Я видел действия как плагины для дерева и вложенных наборов, любой из них потребует изменений модели данных, что я не могу сделать из-за сложности приложения, которое я перепроектирую.