使用Symfony中的注释定义Rails路由

时间:2011-12-05 00:43:25

标签: ruby-on-rails symfony routing

我目前正在学习Rails,它很棒,但我真的很喜欢Symfony的路由系统。在Symfony中,可以直接在Controller中使用注释定义路由。例如:

/**
 * @Route("/blog")
 */
class PostController extends Controller
{
    /**
     * @Route("/{id}")
     */
    public function showAction($id)
    {
    }
}

这意味着/ blog / 5将路由到PostController#showAction。我喜欢这种方法,因为路由是在动作方法之前直接定义的,从我的角度来看,它比在单个文件中定义所有内容更有意义。

Rails有类似的东西吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

不,Rails没有类似的东西。使用Rails,您必须在config/routes.rb中定义路由并将控制器操作分开。然后,您可以对声明路由的行为发表评论,但大多数人都不会这样做。

如果真的困扰你,你可以使用甚至没有控制器概念的Sinatra。相反,您可以定义如下方法:

get '/' do
  "Hello world"
end

发送到GET的任何/请求都会在屏幕上显示“Hello World”。

Sinatra是我个人仅用于轻量级应用程序的东西,其他东西如Padrino或Rails用于任何更重的应用程序。