carrierwave:thumb错误的参数数量

时间:2013-04-26 03:36:33

标签: ruby-on-rails carrierwave

我跟随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方法(而不是对象本身)。这就是我正在做的事情,但我收到了错误。

1 个答案:

答案 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(:拇指)

希望这不要太混乱。