ルートでメソッドを使用してコントローラーを生成しているとき、次のようなものがあります。
get "vehicle_manufacturers/show"
その後、そのようなコードを書くことは良い習慣ですか:
match 'vehicle_manufacturers/:id/' => 'vehicle_manufacturers#show', :as => :vehiclemanufacturers
または、正しく動作するようにこのコードを書く別の方法はありますか?
ルートでメソッドを使用してコントローラーを生成しているとき、次のようなものがあります。
get "vehicle_manufacturers/show"
その後、そのようなコードを書くことは良い習慣ですか:
match 'vehicle_manufacturers/:id/' => 'vehicle_manufacturers#show', :as => :vehiclemanufacturers
または、正しく動作するようにこのコードを書く別の方法はありますか?
アクションの命名とルーティングについては、 Railsの規則に従うことをお勧めします。これはあなたに言うことができます:
resources :vehicle_manufacturers
これにより、、、、、、、のルートが自動的に作成され、適切なindex
HTTPメソッドとヘルパー名が使用されます。ActiveModelの規則(ActiveRecord、Mongoidなど)に準拠するオブジェクトに対応していると仮定すると、自動的にDo The RightThing™が実行され、ルーティング関連の追加作業なしでフォームやリダイレクトなどを使用できます。new
create
show
edit
update
delete
VehicleManufacturer
url_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
ます。厳密に言えば、株価はサブリソースだと思うかもしれませんが...
重要なのは、ルーティングの基礎としてリソースを使用するようにすることです。それはすべてを簡単にします。