2012-03-12 11 views
0

私のroutes.rbをファイルにちょうど2つのラインがあります:Railsと私のルートが区別されるのはなぜですか?

match 'movies/orderby/:field' => 'movies#orderby' 

resources :movies 

は、しかし、私は私のプロジェクトでrake routesを実行したとき、私は変な出力を得る、見て:

   /movies/orderby/:field(.:format) {:controller=>"movies", :action=>"orderby"} 
movies  GET /movies(.:format)    {:action=>"index", :controller=>"movies"} 
      POST /movies(.:format)    {:action=>"create",:controller=>"movies"} 
new_movie GET /movies/new(.:format)   {:action=>"new", :controller=>"movies"} 
edit_movie GET /movies/:id/edit(.:format)  {:action=>"edit", :controller=>"movies"} 
movie  GET /movies/:id(.:format)   {:action=>"show", :controller=>"movies"} 
      PUT /movies/:id(.:format)   {:action=>"update",:controller=>"movies"} 
      DELETE /movies/:id(.:format)   {:action=>"destroy", :controller=>"movies"} 

私が手書きしたルートが他のルートとどのように違うのか分かりますか?

未定義のメソッドのための `movies_orderby」:私は次のエラーメッセージのすべての時間を取得

....、また私のためのURLヘルパーを作成していないレール(それは上部の一つです)

...

EDIT:ルートの作品(私は、一致するURLを入力した場合、すなわち、それは正しくルーティングされる)が、私は私の意見に入れて URLヘルパーメソッドを持っていません!

+0

注文を変更すると変更されますか? – DGM

+0

番号。 Rakeは私のルートを一番下に示しますが、ヘルパーやHTTP動詞は一切ありません –

答えて

2

経路を定義するとき、方法matchは、ヘルパーの名前を指定しない限り、URLヘルパーを生成しません。あなたは:asのルートの名前を定義するときは、たとえばで注文したい場合、あなたはこのようなあなたのビューでそれを使用することができるようになります

match 'movies/orderby/:field' => 'movies#orderby', :as => :movies_orderby 
resources :movies 

:だから私は、あなたが以下のように定義することをお勧めしますtitle

<%= movies_orderby_path("title") %> 

そして、サイドノートとして、あなたは資源ルートの前に試合ルートを正しく定義されていました。他の方法で問題が発生している可能性があります。

+0

[Routing Guide](http://guides.rubyonrails.org/routing.html)は、フェリペ自身が助けることができるように言及する価値があります。そして、 ':via =>:get'はルートリストに動詞を与えます。 –

+1

Mu !!!!モンクは言った。 ありがとうございます!フェリペは言った。 –

+0

@FelipeAlmeida:申し訳ありませんが、質問がないときに質問を取り消すことはできませんか、できますか? –

関連する問題