awesome_nested_set Как не выбрать родителя? - PullRequest
0 голосов
/ 04 декабря 2010

Я только что получил awesome_nested_set , и все работает хорошо.Я преобразовал из activ_as_tree, используя Category.rebuild!, указанный в ссылке на github.

Проблема в том, что у меня нет возможности создать узел на верхнем уровне без родителя (например, - нет пробела <option> в форме выберите).Это тег select_tag, который я использую:

<%= select_tag 'parent_id', options_for_select(nested_set_options(Page) {|i| "#{'..' * i.level} #{i.name}" } ) %>

Я новичок в RoR, поэтому я не уверен, как это сделать, чтобы я мог создать страницу на верхнем уровне.Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Чтобы создать запись на корневом уровне, просто оставьте parent_id ноль. Вам нужно будет добавить опцию для этого:

<%= select_tag 'parent_id', options_for_select(
      nested_set_options(Page) {|i| "#{'..' * i.level} #{i.name}" }.unshift(["No Parent", nil])
    ) %>

Вероятно, пришло время перевести это в помощника.

1 голос
/ 06 февраля 2014

Это не совсем хороший способ сделать это с помощью unshift метода. Вместо этого используйте : include_blank => true .

<%= f.select :parent_id, nested_set_options(Page){|i| "#{'-' * i.level} #{i.name}" }, {:include_blank => true}, {:class => "form-control"} %>
...