回形针文件路径使用3位数字表示用户ID

时间:2014-03-01 02:11:11

标签: ruby ruby-on-rails-3.2 paperclip

我正在尝试使用rails 3 app中的图片代码来显示paperclip上传的头像。我的问题是我尝试链接到的文件的路径是这样构造的

/system/model_name/photos/000/000/model_id/image_size/file_name.jpg 

然而,型号ID始终为3位数。因此,如果用户上传了头像并且用户ID是#1,则路径看起来像

/system/users/photos/000/000/001/thumb/file_name.jpg

所以当我链接像这样的图像标签时

<%= image_tag "/system/users/photos/000/000/#{@user.id}/medium/#{@user.image_file_name.to_s}" %>

我实际上得到了

<img src="/system/users/photos/000/000/1/medium/file_name.jpg">

如果用户ID没有三位数,我应该通过添加一些带有ruby的零来使id为3位数吗?如果是这样,那怎么样?我是以错误的方式解决这个问题而应该将回形针上传路径存储在数据库中,如果是这样,怎么办?我无法在应用程序投入生产时更改回形针的上传路径,并且可能会使已经上传的头像变得不稳定,或者至少更难以链接到。

1 个答案:

答案 0 :(得分:0)

@user.id.length = 1 ? 00#{@user.id} : @user.id.length = 2 ? 0#{@user.id} : @user.id.length = 3 ? #{@user.id}