У меня есть таблица с именем 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.
Какие-нибудь камни или идеи о том, как это сделать? Думаю, у меня есть идея, как это сделать, но я не хочу изобретать это колесо.
Спасибо