我正在使用 Paperclip 将图像上传到我的项目模型,并且我想要一组默认图像(不取决于样式,而是不同的图像),这可能吗?将一个数组而不是一个 URL 传递给 :default_url 选项?
谢谢,
尼古拉斯·霍克·伊萨萨
我正在使用 Paperclip 将图像上传到我的项目模型,并且我想要一组默认图像(不取决于样式,而是不同的图像),这可能吗?将一个数组而不是一个 URL 传递给 :default_url 选项?
谢谢,
尼古拉斯·霍克·伊萨萨
如此接近:如果您希望图像随机更改,而不仅仅是在第一次加载模型时:
:default_url => lambda { "path/to/images/#{rand(5)}.jpg" }
将 rand(5) 放入 default_url proc 将在每次创建新模型对象时分配一个随机图像。
如果您希望随机分配图像并且每个项目应保留其分配的图像,您可以这样做:
has_attached_file :something,
:default_url => lambda { |av| "/images/img_#{av.instance.default_image_number}.png" }
def default_image_number
id.to_s.last
end
此示例允许您拥有 10 个稍微随机的默认图像,这些图像对于每条记录都保持不变:
# img_0.png, img_1.png, etc.
好吧,我没有使用 lambda 函数,但我从 Ben 的回答中得到了这个想法。我只有文件(0.jgp,1.jpg ...),然后我就可以拥有
:default_url => "路径/到/图像/#{rand(5)}.jpg"
没有 lambda ;-)
非常感谢你!
不知道这是否可行,但值得一试。将图像 0.png、1.png、2.png、3.png、4.png 放在磁盘上,然后在您的模型中:
has_attached_file :image,
lambda {{
:default_url => "path/to/images/#{rand(5)}.png"
}}
将您的其他选项也放入 lambda 中。