对 Rails 来说还是很新,所以如果我采取了完全错误的方法,请随时将我排除在外。
我如何让 routes.rb 知道有一个根控制器充满了不操纵模型的动作,同时保留了路由辅助方法?我希望它响应这样的请求:
http://localhost/download
http://localhost/share
使用路线助手,例如
download_app_path
share_path
但没有像这样的静态命名路由:
match '/download' => 'site#download', :as => :download_app
match '/share' => 'site#share', :as => :share
来自不从我的应用程序创建、显示或以其他方式操作模型的 SiteController。
我试过使用这样的方法,但它在不生成路由助手的情况下工作(自然)
match '/:action', :controller => 'site'
理论上我可以不使用路由助手,但我认为它们比将 url 选项的哈希传递给 link_to 或 form 方法更容易阅读。
有没有办法完成一个更足智多谋的根控制器,或者我正在尝试为 Rails 做非常规的事情?
编辑
为清楚起见,下面是这个 SiteController 类的样子:
class SiteController < ApplicationController
def download
@custom_options = { .. }
end
def share
@custom_options = { .. }
end
def about
end
end
它的目的是允许我将不与资源(例如用户或友谊)交互的页面收集到单个控制器中,并将它们全部保存在一个地方。我正在尝试将此控制器设置为应用程序根控制器 - 因此来自此控制器的所有路径都将直接离开应用程序主机( myapp.com/download )
提前致谢!