如何显示Carrierwave缓存的缩略图

jcm*_*jcm 4 ruby-on-rails carrierwave

我使用Carrierwave允许用户将图像附加到他们的帖子.在帖子列表中,我显示缩略图(以haml为单位),如下所示:

%td= image_tag post.image.url :thumb
Run Code Online (Sandbox Code Playgroud)

如果在创建新帖子时验证失败,我会像这样显示缓存:

= image_tag "/#{ImageUploader::cache_dir}/#{post.image_cache}"
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚的是如何显示缓存的缩略图.检查文件系统确认它与缓存的映像位于同一目录中.我试过了

= image_tag post.image_cache :thumb
Run Code Online (Sandbox Code Playgroud)

但它错误 wrong number of arguments (1 for 0)

jcm*_*jcm 5

好的,终于明白了.

  1. 即使在验证错误的情况下,Carrierwave也会缓存上传.毕竟,这就是缓存的用途.它减轻了用户重新上载文件的需要.

  2. gem(我,程序员)的用户不需要担心如何访问缓存.只需在表单和attr_accessible中包含缓存字段,然后像正常一样访问图像(或任何文件).Carrierwave将透明地完成其余工作.所以在我的情况下

    %td= image_tag post.image.url :thumb
    
    Run Code Online (Sandbox Code Playgroud)

将从商店目录或缓存中正确显示图像.

GitHub上的Carrierwave