好了,所以我有這個循環Ruby中的這個遞歸循環有什麼問題?
def page_children(page)
content_tag :li do
link_to page.url, "/#{page.url_path}/#{page.url}"
if page.children.any?
content_tag :ul do
page_children(page)
end
end
end
end
而且我不斷收到stack level too deep
我用這gem我的樹結構和我的模型和HAML如下
class Page < ActiveRecord::Base
acts_as_tree :order => 'sort_order'
belongs_to :parent, :class_name => "Page"
scope :parent_nav, lambda{ |navigation| where(:parent_id => nil, :is_home => 0, :nav => navigation).order("sort_order") }
end
我HAML是以下內容
%ul
- Page.parent_nav("Attend").each do |page|
= page_children(page)
基本上我想爲每個頁面li,如果頁面有孩子,那麼我想要所有的孩子都有一個li的另一個ul ... ext ....但是我的循環關閉了......有什麼我在做的想法錯誤
這需要一定的拋光,注意,助手返回字符串,他們不執行的副作用使像ERB視圖。 – tokland