0

Rails 3のルーティングに少し問題があります

私のページを次のように表示しているコントローラーページがあります

example.com/some_page_title

しかし今、この現在のページにサブページを配置する必要があります

example.com/some_page_title/some_subpage_title

私のルートは次のようになります。

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

しかし、サブページを表示するにはどうすればよいですか? これはフィールド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 に答える