【发布时间】:2012-06-18 17:48:10
【问题描述】:
对 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 或表单方法更容易阅读。
有没有办法完成一个更足智多谋的根控制器,或者我正在尝试为 Rails 做非常规的事情?
编辑
为了清楚起见,下面是这个 SiteController 类的样子:
class SiteController < ApplicationController
def download
@custom_options = { .. }
end
def share
@custom_options = { .. }
end
def about
end
end
它的目的是让我可以将不与资源(例如用户或友谊)交互的页面收集到一个控制器中,并将它们全部保存在一个地方。我正在尝试将此控制器设置为应用程序根控制器 - 因此来自此控制器的所有路径都将直接离开应用程序主机(myapp.com/download)
提前致谢!
【问题讨论】: