为使用acts_as_tree的页面创建嵌套路由

时间:2009-10-30 04:46:13

标签: ruby-on-rails

我有一个深度为1代的Page模型。我怎样才能做我的路线

/约

/约/领导

/左右/视觉和任务

/接触

/加入

/加入/益处

工作?

slug来自friendly_id插件,并且都是独一无二的。

1 个答案:

答案 0 :(得分:0)

路线尽头:

  map.with_options :controller => 'pages' do |pages|
    pages.show_page                ':id',              :action  => 'show'
    pages.show_page_with_parent    ':id/:parent_id',   :action  => 'show'
  end

如果您想要生成指向它的链接:

show_page_with_parent_path(:id => page.name, :parent_id => page.parent.name)

当然,假设slug键是名称。

当然,您可以使用辅助函数进一步自定义此解决方案:

EG:

def custom_show_page_path(page)
  if page.parent.nil?
    show_page_path(:id => page.name)
  else
    show_page_with_parent_path(:id => page.name, :parent_id => page.parent.name)
  end
end