2010-12-04 5 views
0

Я только что получил awesome_nested_set, и все работает хорошо. Я переработал с act_as_tree с помощью Category.rebuild!, перечисленных в ссылке github.awesome_nested_set Как не выбрать родителя?

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

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

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

ответ

2

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

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

Возможно, это время, чтобы переместить это в помощника.

+0

Thanks Adam! Я займусь этим помощником, спасибо за это! – jyoseph 2010-12-04 05:36:06

1

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

<%= f.select :parent_id, nested_set_options(Page){|i| "#{'-' * i.level} #{i.name}" }, {:include_blank => true}, {:class => "form-control"} %> 
Смежные вопросы