【发布时间】:2010-11-14 16:18:06
【问题描述】:
我最近加入了 Rails 应用程序开发 (Rails3) 的世界,我可能正在滥用资源路由。
默认的资源路由为我经常使用的 URL 提供了一些非常方便的帮助方法。我的问题是我有控制器,我将路由指定为足智多谋只是为了利用这些辅助方法。我有一些与资源无关的基本网站导航。
resource :home do
member do
get 'main'
get 'about'
get 'login'
get 'help'
end
end
有没有更好的方法来做我一直在做的事情?每次我有一个新的控制器操作时不需要我手动添加路由条目的任何东西?
澄清一下,我想为控制器指定路由,而不必显式添加任何新操作,但我也希望它自动生成辅助方法。到目前为止,我必须为我想要的每个操作显式添加路由。我可以通过这样做(以非资源方式)获得类似的东西,
match 'home/about' => 'home#about'
但我不想把不符合约定的每条路线都写出来。
【问题讨论】:
-
也许我误解了你,但听起来好像你希望它自动通过你的控制器查看公共方法,并为它们创建命名路由。我读对了吗?如果是这样,您似乎在寻求一种连 Rails 都无法提供的魔法。
-
不,我认为你说得对。举个例子,像“match ':controller(/:action)'”这样的行会自动检测控制器的动作并生成命名路由。我仍在学习 rails 有哪些可用的技巧。另一方面,我不介意有人推荐更好的方法或举一些他们通常如何为他们的应用程序执行此操作的示例。
标签: ruby-on-rails ruby-on-rails-3 routing