Ruby on Rails:我可以将请求直接路由到视图吗?

我有一个管理部分,其中包含controllers目录的子目录。 即,目录app/controllers/admin/包含一组文件,每个文件包含用于处理管理部分的单独部分的控制器。

现在,我想创建一个非常简单的“管理主页”,只是说“欢迎来到管理部分”,但我想避免为此目的创建一个完整的控制器,或者放置“action”方法这个视图在其他一些任意控制器中。

所以,问题是,有没有办法将”直接路由到视图” – 直接路由到HTML文件? (并且,我不希望从请求的路径(例如/some-file.html路由到HTML文件;我需要从/admin/这样的路径路由。)

在这里提出这个问题几乎不值得创建一个存根控制器所需的时间,但我相信我将来会再次有这样的需求。

不,你不能。 为什么?

设计:它只是违反了MVC模式,Rails强制您使用,为了您自己的利益。 总是涉及一个控制器。 是的,即使是这样的存根页面,也需要一个控制器。 无论如何,几行代码不会伤害你,当你需要执行一些访问控制时,你会再次喜欢它。

希望能回答你的问题:-)

就像moritz说的那样,你不能完全绕过控制器,但你不一定要为这个动作创建一个完整的控制器。 当我需要“仪表板”或“登陆”类型的页面时,我只需将操作添加到我的ApplicationController:

 class ApplicationController < ActionController::Base def index end end 

然后将您的页面放在app / views / application / index.html.erb

对于您的情况,您可以将application_controller.rb放在app / controllers / admin /目录中,并在那里执行相同的操作。

我发现这是不属于资源的页面的理想位置。