私の場合、routes.rbの完全に趣のある振る舞いで戦ってきました。私はCarmengemを私のrailsアプリに実装しようとしました。私はこのチュートリアルに従いました。最初の1つは国、2つ目は地域(この場合はサブ地域)の2つの従属選択ボックスが必要でした。私はそれが機能しない理由を見つけるためにほぼ2時間を費やしました。最後に、解決策は非常に単純でした。routes.rbの2行を切り替えるだけです。そして今、私の質問です。最初のケースで、サーバーエラーからの応答があった理由と、私のRailsアプリがshow actionでリクエストを送信しようとした理由を誰かに説明してもらえますか?本当にわかりません。ありがとうございました。
エラー:
Routes.rb
resources :orders
get '/orders/subregion_options' => 'orders#subregion_options'
Server output
Started GET "/orders/subregion_options?parent_region=US" for 127.0.0.1 at 2012-08-13 23:18:35 -0700
Processing by OrdersController#show as HTML
Parameters: {"parent_region"=>"US", "id"=>"subregion_options"}
Order Load (1.3ms) SELECT "orders".* FROM "orders" WHERE "orders"."id" = $1 LIMIT 1 [["id", "subregion_options"]]
Completed 500 Internal Server Error in 3ms
ActiveRecord::RecordNotFound (Couldn't find Order with id=subregion_options):
app/controllers/orders_controller.rb:26:in `show'
正しい動作:
Routes.rb
get '/orders/subregion_options' => 'orders#subregion_options'
resources :orders
Server output
Started GET "/orders/subregion_options?parent_region=US" for 127.0.0.1 at 2012-08-13 23:20:10 -0700
Processing by OrdersController#subregion_options as HTML
Parameters: {"parent_region"=>"US"}
Rendered orders/_subregion_select.html.erb (3.0ms)
Completed 200 OK in 5ms (Views: 4.6ms | ActiveRecord: 0.0ms)