現在、ネストされたプロジェクトがあります。床=>スイッチ=>ジャックから始まります。新しいジャックを作成しようとすることで、すべてがうまくいきました。私がスイッチショーにいるとき、新しいジャックと作成ボタン用のオープンフィールドがあります。ジャック番号を入力して作成すると、エラーが発生します。他のすべてのコードが正しいと仮定すると (他のコードを見たい場合はお知らせください)、jacks コントローラーの create メソッドの何が問題になっているのでしょうか?
アプリ/コントローラー/jacks_controller.rb:
...
def create
@floor = Floor.find(params[:floor_id])
@switch = @floor.switches.find(params[:switch_id])
@jack = @switch.jacks.create(params[:jack])
redirect_to(@switch)
end
...
それが私に与えるエラーは、「ルートが [POST] "/floors/1/switches/1" に一致しません」です。これは、ジャックを追加している現在のスイッチの正確な URL であるため、私には意味がありません。
私が間違っていることや誤解を説明できる人に事前に感謝します!
編集:
これが私のレーキルートです:
floor_switch_jacks GET /floors/:floor_id/switches/:switch_id/jacks(.:format) jacks#index
POST /floors/:floor_id/switches/:switch_id/jacks(.:format) jacks#create
new_floor_switch_jack GET /floors/:floor_id/switches/:switch_id/jacks/new(.:format) jacks#new
edit_floor_switch_jack GET /floors/:floor_id/switches/:switch_id/jacks/:id/edit(.:format) jacks#edit
floor_switch_jack GET /floors/:floor_id/switches/:switch_id/jacks/:id(.:format) jacks#show
PUT /floors/:floor_id/switches/:switch_id/jacks/:id(.:format) jacks#update
DELETE /floors/:floor_id/switches/:switch_id/jacks/:id(.:format) jacks#destroy
floor_switches GET /floors/:floor_id/switches(.:format) switches#index
POST /floors/:floor_id/switches(.:format) switches#create
new_floor_switch GET /floors/:floor_id/switches/new(.:format) switches#new
edit_floor_switch GET /floors/:floor_id/switches/:id/edit(.:format) switches#edit
floor_switch GET /floors/:floor_id/switches/:id(.:format) switches#show
PUT /floors/:floor_id/switches/:id(.:format) switches#update
DELETE /floors/:floor_id/switches/:id(.:format) switches#destroy
floors GET /floors(.:format) floors#index
POST /floors(.:format) floors#create
new_floor GET /floors/new(.:format) floors#new
edit_floor GET /floors/:id/edit(.:format) floors#edit
floor GET /floors/:id(.:format) floors#show
PUT /floors/:id(.:format) floors#update
DELETE /floors/:id(.:format) floors#destroy
home_index GET /home/index(.:format) home#index
root / home#index
これは routes.rb に適していますか? それ以外の場合、私の routes.rb は非常に基本的なものであり、あまり触れていません。それが私の問題である場合、routes.rb の部分を詳しく説明していないチュートリアルを教えてもらえますか?
編集:
それを私が直した。問題は、jacks/_form.html.erb の行のフォームにありました。正しい構文は次のとおりです。
<%= form_for [@floor, @switch, @switch.jacks.new] do |f| %>
助けようとした人に感謝します。