Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails创建新的双嵌套对象_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails RubyonRails创建新的双嵌套对象

Ruby on rails RubyonRails创建新的双嵌套对象,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,因此,目前我有一个嵌套项目。它从地板=>开关=>插孔开始。通过尝试创建一个新的jack,我已经完成了所有工作。当我在开关显示有一个新的插孔和创建按钮的开放领域。当我输入插孔号码并点击create时,错误就出现了。假设所有其他代码都是正确的(如果您想查看任何其他代码,请告诉我),那么我的jacks控制器中的create方法有什么问题 应用程序/控制器/jacks_controller.rb: ... def create @floor = Floor.find(params[:fl

因此,目前我有一个嵌套项目。它从地板=>开关=>插孔开始。通过尝试创建一个新的jack,我已经完成了所有工作。当我在开关显示有一个新的插孔和创建按钮的开放领域。当我输入插孔号码并点击create时,错误就出现了。假设所有其他代码都是正确的(如果您想查看任何其他代码,请告诉我),那么我的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

提前感谢任何能解释我做错了什么或误解的人

编辑:

以下是我的rake路线:

    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 line中。正确的语法是:

<%= form_for [@floor, @switch, @switch.jacks.new]  do |f| %>


感谢所有试图帮助的人,我们非常感激

我遇到了类似的情况,通过将我的
redirect\u改为
语句解决了这个问题。试着这样做:

redirect_to [@floor, @switch]
当时我还记得错误消息并没有帮到我,事实上它把我从线索中抛了出去

你所有的路线都是从
/floor
开始的,但我相信

redirect_to @switch

将尝试解析为您尚未定义的
/switch
路径。

我遇到了类似的情况,通过将
重定向\u更改为
语句解决了此问题。试着这样做:

redirect_to [@floor, @switch]
当时我还记得错误消息并没有帮到我,事实上它把我从线索中抛了出去

你所有的路线都是从
/floor
开始的,但我相信

redirect_to @switch

将尝试解析为您尚未定义的
/switch
路径。

能否发布routes.rb文件的相关部分?如果你可以浏览到/floors/1/switches/1,但不能在那里发布,那听起来像是路由问题。我编辑了主要帖子。让我知道,谢谢你的帮助!嗯,我没有看到任何看起来像
POST/floors/:floor\u id/switches/:id
的路由,这就是错误所说的不存在的。这是有道理的。我试图像使用交换机一样使用插孔,但它与我当前的路由配置不一样。有什么方法可以添加该路线或使用现有路线添加新插孔?您可以发布routes.rb文件的相关部分吗?如果你可以浏览到/floors/1/switches/1,但不能在那里发布,那听起来像是路由问题。我编辑了主要帖子。让我知道,谢谢你的帮助!嗯,我没有看到任何看起来像
POST/floors/:floor\u id/switches/:id
的路由,这就是错误所说的不存在的。这是有道理的。我试图像使用交换机一样使用插孔,但它与我当前的路由配置不一样。是否有任何方法可以添加该路线或使用现有路线添加新插孔?是否有效?如果这个答案解决了您的问题,那么如果您将它标记为已接受,它将帮助其他可能遇到类似问题的人。抱歉,我从星期四就走了,没有太多时间做这件事。不,它不起作用,我仍然有同样的问题。我尝试了新的重定向到,但仍然得到:没有路由匹配[POST]“/floors/1/switches/1”我成功了!相信我,我之前确实搜索过,但现在我做了一个类似的情况,我修复了它。我将编辑主帖子以获取信息。这有用吗?如果这个答案解决了您的问题,那么如果您将它标记为已接受,它将帮助其他可能遇到类似问题的人。抱歉,我从星期四就走了,没有太多时间做这件事。不,它不起作用,我仍然有同样的问题。我尝试了新的重定向到,但仍然得到:没有路由匹配[POST]“/floors/1/switches/1”我成功了!相信我,我之前确实搜索过,但现在我做了一个类似的情况,我修复了它。我将编辑主要帖子以获取信息。