3

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

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

所以,问题是,有没有办法“直接路由到视图”——直接路由到 HTML 文件?(而且,我不想从请求的路径(例如 )路由到 HTML 文件/some-file.html;我需要从类似的路径路由/admin/。)

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

4

2 回答 2

7

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

class ApplicationController < ActionController::Base
  def index
  end
end

然后把你的页面放在 app/views/application/index.html.erb

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

我发现这是放置资源之外页面的理想场所。

于 2009-12-28T22:06:38.250 回答
4

不,你不能。为什么?

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

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

于 2009-12-28T21:40:35.150 回答