在Rails中链接到公共文件

时间:2012-10-11 04:00:41

标签: ruby-on-rails ruby-on-rails-3

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

2 个答案:

答案 0 :(得分:1)

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

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

使用此路线,Rails会将/ photos / 12的传入路径与show的{​​{1}}操作匹配。

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

PhotosController

Rails会将照片/ 12与match 'photos/:id' => 'photos#show', :defaults => { :format => 'jpg' } 的展示操作相匹配,并将PhotosController设置为params[:format]

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

答案 1 :(得分:0)

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

虽然说实话但我不确定除了修道者之外,长网址确实是一个问题。