所以目前我有一个嵌套的项目。它从floor => switches => jacks开始。我已经通过尝试创建一个新的插孔来完成所有工作。当我在开关显示中时,有一个新的插孔和一个创建按钮。当我输入插孔号码并点击创建错误时。假设所有其他代码是正确的(让我知道如果你想看到任何其他代码),我的插孔控制器中的创建方法有什么问题?Ruby on Rails创建一个新的双向嵌套对象
应用/控制器/ 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] ”/楼层/ 1 /开关/ 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部分?
编辑:
我修好了。问题出现在我的插孔/ _form.html.erb中。正确的语法是:
<%= form_for [@floor, @switch, @switch.jacks.new] do |f| %>
感谢任何试图帮助的人,非常感谢!
你能发布你的routes.rb文件的相关部分吗?如果您可以浏览到/ floors/1/switches/1但不能在那里发布,那听起来像是路由问题。 –
我编辑了主帖。让我知道,并感谢您的帮助! –
嗯,我没有看到任何看起来像'POST/floors /:floor_id/switches /:id'的路线,这就是错误所说的不存在的路线。 –