Ruby on rails Rails 2.3中的自定义嵌套布线

Ruby on rails Rails 2.3中的自定义嵌套布线,ruby-on-rails,routing,routes,nested,Ruby On Rails,Routing,Routes,Nested,我正在尝试更改我正在处理的项目中的一些URL,但是我在任何文档中都找不到任何我正在寻找的示例,而且我所有的尝试似乎都没有成功 这就是我要做的。我有一篇文章有几个图像,可以通过如下URL访问单个图像: /posts/aliased_title/images/2 但是,我想更改它,以便删除URL中的“帖子”和“图片”部分,将其更改为类似于/aliased\u title/2 我知道如何在单个控制器上实现这一点,但如何在图像控制器上实现这一点呢?我可以用生成“路径”(比如post_image_pat

我正在尝试更改我正在处理的项目中的一些URL,但是我在任何文档中都找不到任何我正在寻找的示例,而且我所有的尝试似乎都没有成功

这就是我要做的。我有一篇文章有几个图像,可以通过如下URL访问单个图像:

/posts/aliased_title/images/2
但是,我想更改它,以便删除URL中的“帖子”和“图片”部分,将其更改为类似于/aliased\u title/2

我知道如何在单个控制器上实现这一点,但如何在图像控制器上实现这一点呢?我可以用生成“路径”(比如post_image_path)的方式来实现这一点,还是需要将每个动作硬编码到路由中


提前感谢。

根据路线和别名标题的外观,您可以使用以下内容:

resources :images, :path => '/:title/:id', :constrain => { :title => /[a-z_-]+/ }

# in your view
image_path(image.title, image)
请记住,路由按照定义的顺序匹配,因此您需要将这一行放在路由文件的底部,这样它就不会干扰像
/users/2
这样的路由

这一切都说,你应该强烈地考虑你的用例是否可以像一个锚一样生活在<代码> /IMAGION/COD>。这将避免许多与路由有关的混乱问题,这些问题很可能会对您造成不利影响。没有锚不是不可行的,但它确实会产生额外的工作