【问题标题】:Rails 3 route for subpage子页面的Rails 3路线
【发布时间】:2013-02-15 21:14:14
【问题描述】:

rails 3 路由有点问题

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

example.com/some_page_title

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

example.com/some_page_title/some_subpage_title

我的路线现在是这样的:

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

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

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

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

    • 几乎可以工作 :) 但从表中获取数据有问题
    • PG::Error: 错误: 列 pages.page_id 不存在 LINE 1: SELECT "pages".* FROM "pages" WHERE "pages"."page_id" = 6 ... ^ : SELECT "pages".* FROM "pages" WHERE "pages"."page_id" = 6 AND "pages"."title" = 'Info' LIMIT 1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多