2012-10-11 25 views
2

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

+0

一个小诀窍是在公共文件夹下创建一个目录,并将它作为深层链接的符号链接。 – halfelf

+0

您的意思是使用Linux命令'ln -s'来创建符号链接? – John

回答

1

您不需要明确使用路由中的:controller和:action符号。您可以提供他们为默认设置:

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

有了这条路,Rails会的/照片传入路径匹配/ 12的PhotosControllershow行动。

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

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

的Rails将匹配的照片/ 12的PhotosController show动作,并设置params[:format]jpg

并且还参考:http://guides.rubyonrails.org/routing.html

0

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

虽然说实话,我不确定有一个长的网址是一个真正的问题,除了可能的修道者。