1

ルートでメソッドを使用してコントローラーを生成しているとき、次のようなものがあります。

get "vehicle_manufacturers/show"

その後、そのようなコードを書くことは良い習慣ですか:

match 'vehicle_manufacturers/:id/' => 'vehicle_manufacturers#show', :as => :vehiclemanufacturers

または、正しく動作するようにこのコードを書く別の方法はありますか?

4

1 に答える 1

5

アクションの命名とルーティングについては、 Railsの規則に従うことをお勧めします。これはあなたに言うことができます:

resources :vehicle_manufacturers

これにより、、、、、、、のルートが自動的に作成され、適切なindexHTTPメソッドとヘルパー名が使用されます。ActiveModelの規則(ActiveRecord、Mongoidなど)に準拠するオブジェクトに対応していると仮定すると、自動的にDo The RightThing™が実行され、ルーティング関連の追加作業なしでフォームやリダイレクトなどを使用できます。newcreateshoweditupdatedeleteVehicleManufacturerurl_for

これらのメソッドのサブセットのみが必要になることはよくあることです。それも問題ありません:

resources :vehicle_manufacturers, :only => [:index, :show]

通常のCRUDメソッド以外の追加のメソッドをサポートしたい。頑張れ:

resources :vehicle_manufacturers, :only => [:index, :show] do
  get :stock_price, :on => :member
end

stock_price_vehicle_manufacturerこれにより、 mappingという名前のルートがに追加され/vehicle_manufacturers/:id/stock_priceます。厳密に言えば、株価はサブリソースだと思うかもしれませんが...

重要なのは、ルーティングの基礎としてリソースを使用するようにすることです。それはすべてを簡単にします。

于 2012-10-05T14:03:27.543 に答える