Rails 3路由子页面

时间:2013-02-15 21:14:14

标签: ruby-on-rails ruby-on-rails-3 controller routes

我在rails 3路由中有一点问题

我有一个控制器页面,显示我的页面

example.com/some_page_title

但现在我需要在当前页面中放置一个子页面

example.com/some_page_title/some_subpage_title

我的路线现在看起来像这样:

match ':title' => 'page#show'

但要显示子页面怎么办?我认为这是子页面由fild parent_id是真的,这必须是一个子页面,但它是假的这是主页面。我是否必须将我的子页面放到其他控制器上,甚至放在其他数据库表中?

如果想将我的子页面更改为普通页面该怎么办,现在我只删除parent_id并完成。

1 个答案:

答案 0 :(得分:1)

你可以尝试:

match :parent_title/:title => "pages#show"

假设:

class Page
   has_many :subpages, :class_name => "Page"
end
控制器中的

def show
  if params[:parent_title].present?
    parent = Page.find_by_title params[:parent_title]
    @page = parent.subpages.find_by_title params[:title] if parent.present?
  end
end