嘿,我正在尝试在我的第一个 Rails 项目中为嵌套集实现拖放界面。我是 Rails 新手,所以请耐心等待。我的代码与这个项目基本相同: http://gist.github.com/128779。我的问题在于这一行的部分:
<% for child in root.direct_children do %>
我得到一个 NoMethodError ,我相信direct_children
它是 的实例方法。acts_as_nested_set
在控制台上,如果我尝试创建模型的新实例,它同样无法访问acts_as_nested_set
实例方法,所以我认为问题不在于部分,而在于模型。
再次抱歉,如果我的术语有误,我是 Rails 新手。无论如何,我做错了什么?我的模型中有“ acts_as_nested_set
”,就像上面的要点示例一样,但我的模型似乎没有充当嵌套集。我该如何解决这个问题?
谢谢!
这是我正在使用的模型的代码(todo.rb):
class Todo < ActiveRecord::Base
acts_as_nested_set
end
这是部分内容:
<% content_tag :li, :id => dom_id(root) do %>
<%= content_tag :span, root.text %>
<% content_tag :ul do %>
<% for child in root.direct_children do %>
<%= render :partial => "tree", :locals => {:root => child}%>
<%end %>
<%end unless root.direct_children.empty? %>
<%end%>
root
从视图传递给局部,例如:
<%= render :partial => "tree", :locals => {:root => @root} %>
并@root
在控制器中定义,如:
@root = Todo.find_by_parent_id(nil)
同样,代码大部分是批发复制的,对上面的 gist 链接的修改很少。