如何在rails中创建动态创建的链接助手?

时间:2014-04-02 16:05:46

标签: ruby-on-rails ruby

我有一个大约有10张图片的文件夹,这些图片会在我的网页上随机抽取。目前代码如下所示:

<%= link_to image_tag("/assets/products/default_products/default_product_#{rand(1..9)}.jpg"), product%> 

这在开发上工作正常但在生产时jpeg的名称被更改它不起作用。它生成一个如下所示的链接:

/assets/products/default_products/default_product_6.jpg

当所有图像实际上已重命名为以下内​​容时:

default_product_3-af2af1f642a10926ed5cfb29aeb780e6.jpg

我该如何做到这一点?

3 个答案:

答案 0 :(得分:0)

Rails将MD5指纹(af2af1f642a10926ed5cfb29aeb780e)插入到每个文件名中,以便Web浏览器缓存该文件。

From documentation

  

默认情况下,生产和禁用指纹识别已启用   所有其他环境。您可以在您的启用中启用或禁用它   通过config.assets.digest选项进行配置。

答案 1 :(得分:0)

如果你制作一个现有图像数组,然后随机选择其中一个而不是生成文件名怎么办?

pictures = %w(pic_1 pic_2 pic_3)

image_tag("/path/to/files/#{pictures.sample}")
这样你可以保持指纹识别。

答案 2 :(得分:0)

啊,啊......没关系。我的原始代码实际上可行,我只需删除&#39; / assets /&#39;部分来自link_tag助手。

所以这适用于指纹识别:

<%= link_to image_tag("products/default_products/default_product_#{rand(1..9)}.jpg"), product%>