Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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 嵌套资源的路由中的单个自定义参数名称Rails 4.1_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 嵌套资源的路由中的单个自定义参数名称Rails 4.1

Ruby on rails 嵌套资源的路由中的单个自定义参数名称Rails 4.1,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我对rails路由中嵌套资源的参数名有疑问 例如,我有: resources :controller1, param: :controller_id do resources :controller2 end 我有路线: controller1/:controller_id/ ... controller1/:controller_controller_id/controller2/... ... 我想要控制器1的单个:控制器\u id 我知道这看起来很糟糕,但是 这是怎么回事? 谢谢

我对rails路由中嵌套资源的参数名有疑问 例如,我有:

resources :controller1, param: :controller_id do
  resources :controller2
end
我有路线:

controller1/:controller_id/
...
controller1/:controller_controller_id/controller2/...
...
我想要控制器1的单个:控制器\u id 我知道这看起来很糟糕,但是 这是怎么回事? 谢谢

试试看

resources :controller1, param: :controller_id, path: "" do
  resources :controller2, path: ""
end
这个怎么样:

resources :controller1, param: :controller_id do
  member do
    resources :controller2
  end
end
将产生

GET    /controller1/:controller_id
GET    /controller1/:controller_id/controller2
GET    /controller1/:controller_id/controller2/:id
...

谢谢,但是没有,我有嵌套请求的控制器idagain@user3049436您希望它用于嵌套资源还是父资源?我希望它用于父资源和嵌套资源,例如:controller1/:controller\u id/controller1/:controller\u id/controller2/…我处于相同的情况,您是如何解决此问题的?请删除“param::controller_id”,然后您可以使用params[:id]或params[:controller_id]检查应用程序控制器中的路由(操作)以获取数据。如果遇到相同的问题,可能会重复,那么您必须修复嵌套的资源路径帮助程序,因为它们是绝对的,
新建控制器2\u路径
而不是
新建控制器1\u控制器2\u路径