awesome_nested_set如何不选择父级?

时间:2010-12-04 05:12:23

标签: ruby-on-rails ruby ruby-on-rails-plugins

我刚刚awesome_nested_set到位,一切运作良好。我使用github链接上列出的Category.rebuild!从acts_as_tree转换过来。

问题是,我没有在没有父级的情况下在顶层创建节点的选项(例如 - 表单select中没有空白<option>)。这是我正在使用的select_tag:

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

我是一个新手,因此我不确定如何制作它以便我可以在顶层创建一个页面。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

要在根级别创建记录,只需保留parent_id nil即可。您需要为此添加一个选项:

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

现在可能是时候把它变成帮助了。

答案 1 :(得分:1)

通过 unshift 方法执行此操作并不是一个好方法。 使用:include_blank =&gt;是的

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