2

ここでこのチュートリアルに従おうとしていますが、チュートリアルではこの「一致」関数を使用しているようです。

match '/about',   :to => 'pages#about'

私が同じことをするときはいつでも、私はサーバーからこのエラーを受け取ります:

main:Objectの未定義のメソッド `match'

次のようにroutes.rbファイルを編集するにはどうすればよいですか?

  1. 長いファイルパスから短いファイルパスにルーティングされます(例:/ pages /aboutから/about)
  2. リンクできる「about_path」変数を使用できます(例:<%= link_to "About"、about_path%>)
4

3 に答える 3

4

Ruby on Rails 3を使用していますか?ルーターのmatch構文はRails3専用です。以前のバージョンでは、名前付きルートを定義できます。

map.about '/about', :controller => 'pages', :action => 'about'
于 2010-07-20T15:10:46.687 に答える
0

その構文は、次のRails3用です(実際にはbeta4ですが、何をしているのかがわかっている場合は、まだ本番環境に採用されています:P)

レール2.3にはこれを使用する必要があります。

map.about '/about', :controller => 'pages', :action => 'about'

これは、特定のページをレンダリングする「about」というアクションがある場合に機能します。それ以外の場合、「about」が「show」アクションからフェッチする単純なページであり、IDまたはPERMALINKを渡す場合(例:permalink_fuプラグインを使用している場合)、正しい構文は次のとおりです。

map.about '/about', :controller => 'pages', :action => 'about', :id => 'page_id_or_permalink'

この解決策は最善ではありません。パーマリンクを変更したり、別のIDでページを削除/再作成したりする場合は、ルートを更新する必要があります。ちなみにそれはあなたが尋ねたように動作します。

于 2010-07-20T15:20:00.567 に答える
0

私はそれをしました:

  map.connect '/page', :controller => 'page2', :action => 'index'

したがって、URLでリダイレクトするだけでhttp://x.x.x.x/page、RoRが実際に読み込まれますhttp://x.x.x.x/page2/index.html.erb

よろしくお願いします、

IvánCarrascoQ。

于 2013-11-14T16:41:41.253 に答える