[英]Ruby on Rails creating a new doubly nested object
所以目前我有一個嵌套項目。 它以Floors => switchs => jacks開頭。 通過嘗試創建新的插孔,我完成了所有工作。 當我進入切換秀時,會有一個用於新插孔和創建按鈕的開放字段。 當我輸入插孔編號並點擊創建時,就會出現錯誤。 假設所有其他代碼正確(讓我知道是否要查看其他代碼),那么jacks控制器中的create方法有什么問題?
apps / controllers / 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| %>
感謝任何嘗試提供幫助的人,不勝感激!
我遇到了類似的情況,並通過更改redirect_to
語句解決了該問題。 嘗試這樣的事情:
redirect_to [@floor, @switch]
當時我還記得錯誤消息並沒有幫助我,實際上是使我偏離了軌道。
您所有的路線都以/floor
開頭,但我相信
redirect_to @switch
將嘗試解析為您尚未定義的/switch
路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.