【问题标题】:carrierwave :thumb wrong number of arguments载波:拇指错误的参数数量
【发布时间】:2013-04-26 03:36:33
【问题描述】:

我正在关注 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 方法。这就是我正在做的,但我得到了错误。

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    首先,Ryan 的代码有错别字

    <%=  image_tag painting.image_url(:thumb).to_s %>
    

    正确的是

    <%=  image_tag painting.image.url(:thumb).to_s %>
    

    这已经发布在那个esp的评论中了。

    对于您的代码,@profilepic 是来自模型或载波的 obj

    例如@profilepic = ProfilePic.find :first @profilepic.url 只是 ProfilePic 的一个方法

    调用carrierwave控制文件的url的正确语法是 @profilepic.image.url(:thumb)

    希望这不会太混乱。

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多