Как мне создать бесконечное иерархическое дерево HTML в Rails 3.1? - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть таблица с именем Metrics, которая является таблицей с самообращением. Это означает, что у него есть отношения родитель / ребенок с бесконечными детьми.

У меня есть маршрут как:

match "/metrics/:id/children" => "metricchildren#index", :as => "metric_children"

Контроллер metricchildren загружает дочерние элементы метрики и отображает страницу индекса.

Эта страница выглядит примерно так (корневой родитель называется Totals):

Metric            Children?
----------------------------
Total Expense         YES
Total Labor           NO

Теперь я хочу, чтобы пользователь щелкнул Total Expense, и тогда URL-адрес выглядел бы примерно так:

http://example.com/metrics/42-totals/children/78-total-expense

42 - это идентификатор метрики Totals, 78 - это идентификатор метрики Total Expense. Поэтому, когда вы переходите к Total Expense, это создает таблицу, как указано выше, и когда вы нажимаете метрики, URL-адреса растут как:

http://example.com/metrics/42-totals/children/78-total-expense/98-total-direct
http://example.com/metrics/42-totals/children/78-total-expense/98-total-direct/102-blah

и т.д ...

Очень похоже на работу Github. Еще лучше будет возможность не указывать идентификаторы в URL.

Какие-нибудь камни или идеи о том, как это сделать? Думаю, у меня есть идея, как это сделать, но я не хочу изобретать это колесо.

Спасибо

1 Ответ

0 голосов
/ 22 декабря 2011

Что касается "рекурсивных маршрутов", см. этот другой пост SO . Короткий ответ: на самом деле это довольно просто с маршрутизацией.

Теперь я прокручиваю свои собственные красивые постоянные ссылки, используя слаг вместо идентификатора базы данных, но я слышал замечательные вещи о friendly_id .

...