Построение линий маршрутизации для большой древовидной структуры с использованием драгоценного камня ancestry

#jquery #css #ruby-on-rails-3 #treeview #ruby-on-rails-3.1

#jquery #css #ruby-on-rails-3 #просмотр дерева #ruby-on-rails-3.1

Вопрос:

Я использую драгоценный камень ancestry и следил за эпизодом railscasts здесь, чтобы заставить драгоценный камень работать, который работает отлично.

Я создал довольно большое дерево предков, и хотя родительские и дочерние элементы вложены путем отступа полей, я предпочитаю какие-то линии маршрутизации. На рисунке ниже показана небольшая часть общего дерева.

введите описание изображения здесь

Я хотел бы, чтобы структура выглядела так / или что-то подобное

введите описание изображения здесь

Я попытался поиграть со структурой, добавив строки, но, похоже, я просто оказался в дыму.

Каждому родительскому и дочернему элементу присваивается отдельное поле div, подобное этому (в помощнике). точно так же, как в эпизоде railscasts .

 def nested_messages(messages)
  messages.map do |message, sub_messages|
    render(message)   content_tag(:div, nested_routes(sub_messages), :class => "nested_messages")
  end.join.html_safe
end
  

Как это можно сделать, если это возможно. Какие-либо подсказки?

Ответ №1:

Я бы не стал пытаться создавать строки, используя приемы div и css. Вы пытаетесь создать элемент пользовательского интерфейса, подобный дереву навигации. Просто используйте настоящую библиотеку пользовательского интерфейса, такую как jsTree. Используйте rails для создания структуры данных (вы уже это сделали), визуализируйте статический <ul> список HTML (это должно быть легко преобразовать ваши <div> s в элементы списка). Затем позвольте javascript отобразить представление этой структуры данных (строки и т. Д.), И вы получите интерактивность и другие вещи бесплатно. 🙂

Вот основной сайт: http://www.jstree.com /

Посмотрите эту демонстрацию: http://www.jstree.com/documentation/core#demos

Посмотрите на источник страницы, и вы увидите <div id="demo2" ...> , где начинается волшебство.

Установка jQuery и этого плагина должна быть довольно простой в Rails 3 (в 3.1 у вас уже есть jQuery).

Комментарии:

1. спасибо за руководство. Я попробую это и посмотрю, связано ли это с драгоценным камнем ancestry, который я использую. Оставит вопрос открытым на несколько дней, чтобы узнать, хочет ли кто-нибудь еще что-нибудь опубликовать.

2. спасибо, после игры с ним мне удалось заставить его работать. большое спасибо