У меня проблема при попытке root_id одного объекта. Класс выглядит следующим образом:рельсы 4: родословная не работает должным образом?
# == Schema Information
#
# id :integer not null, primary key
# name :string(255)
# ancestry :string(255)
class PackageCategory < ActiveRecord::Base
has_ancestry
end
, что таблица базы данных выглядит:
id name ancestry
1 Root NULL
2 Child 1-1 1
3 Child 1-2 1
4 Child 2-1 2
5 Child 3-1 4
Когда я делаю:
@p = PackageCategory.find 5
puts @p.root_id
Я получаю: 4
Когда я типа:
@p.path_ids
Я получаю: [4, 5]
puts @p.name
дает мне Child 3-1
(и это правильно)
Итак, где проблема? Должен ли я попасть в первый случай 1
, а во втором [1, 2, 4, 5]
?
Пожалуйста, дайте мне знать ваше соглашение об именах: Ребенок 3-1 означает первый ребенок id 3? –
нет, нет никакого соглашения об именах, я взял их без какого-либо заказа. Это имя «Child 3-1» имеет идентификатор 5 (как показано в таблице). –