0

私の現在のroutes.rbコードは次のとおりです。

Mysite::Application.routes.draw do
  get "pages/home"

  get "pages/about"

  get "pages/resume"

  get "pages/contact"

  root :to => "pages#home"

  match "/about", to: "pages#about"
  match "/resume", to: "pages#resume"
  match "/contact", to: "pages#contact"
end

ページ コントローラーへのルート ディレクトリのルーティングを簡素化する方法はありますか? ルート ディレクトリからのすべてのルートをページ コントローラー アクションに一致させる代わりに、ルート ディレクトリ全体をページ コントローラー自体に一致させることはできますか?

4

4 に答える 4

1

最初の 4 つの s を削除しgetます。あなたのrootandmatch宣言は問題なく機能します。

Mysite::Application.routes.draw do

  match "/about", to: "pages#about"
  match "/resume", to: "pages#resume"
  match "/contact", to: "pages#contact"
  root :to => "pages#home"

end
于 2013-05-29T00:08:01.797 に答える
0

ルート ディレクトリ全体をページ コントローラーにルーティングしたい場合は、 cat allルートを描画できます。

  match '/*path', to: 'pages#show'

ルートの最後でこれを行うと、以前に定義されていないすべてのリクエストがキャッチされます。あなたのページ#showで、パスを調べて、一致するページを見つけようとすることができます。

  search =  params[:path].split('/').last

パスの最後の部分を取得し、

  @page = Page.find_by_titel_or_id search

タイトルで一致するページを見つけようとします。(refinery_cms のような CMS によって行われます)

于 2013-05-29T07:15:19.513 に答える
0
Mysite::Application.routes.draw do
# Layout
  resources :pages do
    get 'about' => 'pages#about', :on => :collection
    get 'resume' => 'pages#resume', :on => :collection
    get 'contact' => 'pages#contact', :on => :collection
  end
  match 'About' => 'pages#about', :as => :About
  match 'Resume' => 'pages#resume', :as => :Resume
  match 'Contact' => 'pages#contact', :as => :Contact
  root :to => "pages#home"
end

これで、この一致を次のように直接使用できます

<a href='/Contact'>Contact Us</a>
于 2013-05-29T07:21:16.323 に答える