导航助手活动记录
问题描述:
我有点卡住了,可能不能正确理解AR。下面是我得到了什么:导航助手活动记录
module PagesHelper
def page_loop(pages)
output = ""
pages.each do |page|
output << "<li><a href=\"" << page.title << "\">" << page.title << "</a>"
children = page.children
if children.size > 0
output << "<ul>"
page_loop(children)
output << "</ul>"
end
output << "</li>"
end
return output
end
def navigation_list
parent_pages = Page.where("parent_page_id IS NULL").order("title")
output = "<ul>"
output << page_loop(parent_pages)
output << "</ul>"
end
end
然后在模型如下:
def children
Page.where("parent_page_id = ?", id)
end
出于某种原因,返回下面的输出,其中我有两个页面,测试和另一其parent_page_id设置为测试页面的ID。
<ul><li><a href="test">test</a><ul></ul></li></ul>
因此,它将获得下一个<ul>
元素,但不会遍历页面。
我误解AR方法吗?我期待在那里有一个<li>
元素。
答
Gah。愚蠢的错误。
if children.size > 0
output << "<ul>"
output << page_loop(children)
output << "</ul>"
end
固定。