0

我在 Rails 3 路由中遇到了一点问题

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

example.com/some_page_title

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

example.com/some_page_title/some_subpage_title

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

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

但是如何显示子页面?我通过 fild parent_id 识别这是子页面是真的,这必须是子页面,但这是主页面是假的。我是否必须将我的子页面放到其他控制器甚至其他数据库表中?

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

4

1 回答 1

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
于 2013-02-15T21:45:42.050 回答