我跟随Ryan Bates的载波Railscast http://railscasts.com/episodes/253-carrierwave-file-uploads。有一次,在将图像调整为缩略图后,他会使用以下代码显示缩略图
<%= image_tag painting.image_url(:thumb).to_s %>
我在profilepic实例变量上调用url方法并尝试获取这样的缩略图
<%= image_tag @profilepic.url(:thumb).to_s %>
但是我收到了错误
wrong number of arguments (1 for 0)
它不期望:thumb参数。
在image_uploader中,我安排像这样创建缩略图(安装rmagick之后)
version :thumb do
process :resize_to_limit => [50, 50]
end
任何人都可以解释我可能做错了吗?我在主题Rails: image_tag issue上找到了一个SO问题,它解释了参数(在本例中为:thumb)需要传递给对象的url方法(而不是对象本身)。这就是我正在做的事情,但我收到了错误。
答案 0 :(得分:4)
首先,Ryan的代码有一个拼写错误
<%= image_tag painting.image_url(:thumb).to_s %>
正确的是
<%= image_tag painting.image.url(:thumb).to_s %>
这已经在esp。
的评论中发布了对于您的代码,@ profileofpic是来自模型或来自carrierwave的obj
e.g。 @profilepic = ProfilePic.find:首先 @ profilepic.url只是来自ProfilePic的方法
调用carrierwave控制文件的url的正确语法是 @ profilepic.image.url(:拇指)
希望这不要太混乱。