2

我在 Rails 项目中有一个文件 /public/animals/mammals/pets/d/dog.jpg。因此可以通过 URL 访问它/animals/mammals/pets/d/dog.jpg。有没有办法让它从较短的 URL 访问,例如/dog-picture链接到/animals/mammals/pets/d/dog.jpg

4

2 回答 2

1

您不需要在路由中显式使用 :controller 和 :action 符号。您可以将它们作为默认值提供:

match 'photos/:id' => 'photos#show'

通过这条路由,Rails 会将 /photos/12 的传入路径showPhotosController.

您还可以通过为 :defaults 选项提供哈希来定义路由中的其他默认值。这甚至适用于您未指定为动态段的参数。例如:

match 'photos/:id' => 'photos#show', :defaults => { :format => 'jpg' }

Rails 会将 photos/12 与 的 show 动作匹配PhotosController,并设置params[:format]jpg.

另请参阅: http: //guides.rubyonrails.org/routing.html

于 2012-10-11T04:10:23.293 回答
0

简单的解决方案是制作一个控制器来处理图像请求。然后,您可以将图像移出公用文件夹。

虽然老实说,除了苦行者之外,我不确定有一个长网址真的是一个问题。

于 2012-10-11T04:12:15.320 回答