我有一个管理部分,其中包含controllers
目录的子目录。即,目录app/controllers/admin/
包含一组文件,每个文件包含一个控制器,用于处理管理部分的单独部分。
现在,我想创建一个非常简单的“管理主页”,只是说“欢迎来到管理部分”,但我想避免为此目的创建一个完整的控制器,或者放置“动作” “在其他一些任意控制器中使用此视图的方法。
所以,问题是,有没有办法将''直接路由到视图'' - 直接路由到HTML文件? (并且,我不希望从/some-file.html
之类的请求路径路由到HTML文件;我需要从/admin/
之类的路径进行路由。)
在这里提出这个问题并不值得花时间来创建一个存根控制器,但我相信我将来会再次有这样的需求。
答案 0 :(得分:8)
就像moritz所说,你不能完全绕过控制器,但你不一定要为这个动作创建一个完整的控制器。当我需要“仪表板”或“登陆”类型的页面时,我只是将操作添加到我的ApplicationController:
class ApplicationController < ActionController::Base
def index
end
end
然后将您的页面放在app / views / application / index.html.erb
对于您的情况,您可以将application_controller.rb放在app / controllers / admin /目录中,并在那里执行相同的操作。
我发现这是不属于资源的页面的理想位置。
答案 1 :(得分:4)
设计:它只是违反了MVC模式,Rails强制您使用,为了您自己的利益。总是涉及一个控制器。是的,即使是这样的存根页面,也需要一个控制器。无论如何,几行代码不会伤害到你,当你需要执行一些访问控制时,你会再次喜欢它。
希望回答你的问题: - )