2011-06-21 26 views
1

とかなりのURLを行い、私は信じています私はこの効果に何かをしたいと思いますroutes.rbを

しかし、私はold(rails 2.x routing api)を使っているようで、エラーを出さずにmap.connectを使うことはできません。これをどうすればアップグレードできますか?

"マッチ"でこれを行う方法はありますか?

ありがとうございます!

===================

これは私がmap.connectを使用しようとすると、私は見誤りである:

undefined local variable or method `map' for #<ActionDispatch::Routing::Mapper:0x103757458> 

答えて

0

の場合あなたの目標を理解しています。

match 'companies/show/:company_name/:id' => 'companies#show' 
+0

はあなたに感謝!何らかの理由でそれをやっていないのです。それはまだ 'show /:id'を表示しています... hm – mtay

+0

はい、Rails 3はルーティングに関するかなりの変更を行いました。 「地図」は不要です。 http://edgeguides.rubyonrails.org/3_0_release_notes.html#action-dispatch、http://rizwanreza.com/2009/12/20/revamped-routes-in-rails-3、http:///www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/ – bioneuralnet

4

あなたのルートには、最初の行に "/"記号がないと思います。 これを試してみてください:

match '/show/:company_name/:id' => 'companies#show' 

あなたはコマンドrake routesであなたのルートパスを確認することができます。

-

また、showアクションは、Railsの中にデフォルトRESTfulな方法があります。同等の言葉を変更し、将来の状況や他の状況に備えて「ショー」アクションを予約することをお勧めします。

Rails規約では、resources :companiesと書くことができ、表示アクションを使用してパスは/companies/:idとなります。アプリ/モデル/ company.rb

def to_param 
    self.name 
end 

いくつかの調整が、だからあなたのURLはhttp://yourdoamin.com/companies/37signalsのようになります。アプリ/コントローラ/ companies_controller.rb

@company = Company.find_by_name(params[:id]) 
関連する問題