我目前正在学习Rails,它很棒,但我真的很喜欢Symfony的路由系统。在Symfony中,可以直接在Controller中使用注释定义路由。例如:
/**
* @Route("/blog")
*/
class PostController extends Controller
{
/**
* @Route("/{id}")
*/
public function showAction($id)
{
}
}
这意味着/ blog / 5将路由到PostController#showAction。我喜欢这种方法,因为路由是在动作方法之前直接定义的,从我的角度来看,它比在单个文件中定义所有内容更有意义。
Rails有类似的东西吗?
谢谢!
答案 0 :(得分:3)
不,Rails没有类似的东西。使用Rails,您必须在config/routes.rb
中定义路由并将控制器操作分开。然后,您可以对声明路由的行为发表评论,但大多数人都不会这样做。
如果真的困扰你,你可以使用甚至没有控制器概念的Sinatra。相反,您可以定义如下方法:
get '/' do
"Hello world"
end
发送到GET
的任何/
请求都会在屏幕上显示“Hello World”。
Sinatra是我个人仅用于轻量级应用程序的东西,其他东西如Padrino或Rails用于任何更重的应用程序。