0

私は次のようにレールルートを設定しています:

match ':controller/:id/:action'
# match 'teams/:id' => "teams#show" # doesn't have any additional effect, which makes sense to me
resources :teams, :only => [:index, :show]

そうすれば私は言うことができ、それはで/teams/cleveland-indians呼び出すでしょう。よく働く。私の問題は、それが私が望んでいることを完全に実行していないということです。ビュー/チーム/インデックスビューで、次の動作が発生します。teams#show:id => 'cleveland-indians'url_for

url_for(:id => "cleveland-indians") # => /teams/cleveland-indians/index
url_for(:id => "cleveland-indians", :action => :show) # => /teams/cleveland-indians/show

もちろん、その2つ目は私が望むように動作しますが/show、最後に不要なものを取り除きたいと思います。これらのヘルパーがどのように機能するかについてはよくわかりませんがshow、ルーティングエンジンと同じように、指定されたIDを持つGETのデフォルトのアクションであることがわかっていると思います。とにかく、私がこれを処理するための最良の方法は何ですか?それとも私はそれをすべて間違っているのですか?

4

1 に答える 1

1

'resources'行は、おそらく必要なルートをすでに提供しているはずなので、最初の'match'行を削除するだけです。

'url_for'の代わりに'teams_path'、'team_path( "cleveland-indians")'を使用することもできることに注意してください。

于 2011-03-15T14:14:35.730 に答える