Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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 如何路由到子目录/文件夹?_Ruby On Rails_Controller_Routing_Views_Subdirectory - Fatal编程技术网

Ruby on rails 如何路由到子目录/文件夹?

Ruby on rails 如何路由到子目录/文件夹?,ruby-on-rails,controller,routing,views,subdirectory,Ruby On Rails,Controller,Routing,Views,Subdirectory,在Rails中,如何将视图放置在子目录/子文件夹中(只是为了组织它们),并且仍然正确地路由/渲染它们 我想在另一个视图的名称空间下组织一些视图。所有视图都在一个控制器下 我想要 www.custom.com/controller/action/ 显示action.html视图 我想使用这个url www.custom.com/controller/action/sub_action 而不是 www.custom.com/controller/sub_action 两者都是同一控制器下的同级操作

在Rails中,如何将视图放置在子目录/子文件夹中(只是为了组织它们),并且仍然正确地路由/渲染它们


我想在另一个视图的名称空间下组织一些视图。所有视图都在一个控制器下

我想要

www.custom.com/controller/action/

显示
action.html
视图

我想使用这个url

www.custom.com/controller/action/sub_action

而不是

www.custom.com/controller/sub_action

两者都是同一
控制器下的同级操作和视图。
我希望
action
可以呈现一个页面,也可以用作其他视图的名称空间

我不想/不需要制作另一个控制器或资源


如何执行此操作?

在控制器中渲染时,可以指定所需的视图(如果该视图因任何原因不在常规位置)

甚至:

render 'some_other_controller/action/sub_action'

签出

路由如何?您可以设置成员路由或非资源路由,以将对任何URL的请求定向到任何控制器的操作。查看Rails文档中的
从外到内布线指南。大致如下:
获取“controller/action/sub_action”,到“controller/sub_action”
应该可以做到这一点(不过,如果新路由与任何现有路由重叠,请注意routes.rb文件中的顺序,如
controller/action/:id
get'controller/action/sub_action'
指定url,而不是文件夹路径。因为我没有为
subaction
视图使用常规位置,所以我需要指定此位置。我已经测试过,我不能只将视图放在视图文件夹的子文件夹下。指定视图文件为I的可选哈希键值对是什么n视图文件夹的子文件夹?我找不到这方面的任何资源,包括从外到内的
路由指南。我相信呈现解决方案可能很有前途。我会研究它。我相信所有呈现都会导致部分。这不会产生新的url。
render 'some_other_controller/action/sub_action'