尝试刷新时Paperclip Rails错误

时间:2014-04-22 20:52:26

标签: ruby-on-rails ruby paperclip

我的用户模型:

class User < ActiveRecord::Base
  has_attached_file :avatar, :styles => { :profile => "200x200>", :collab => "300x200>", :msg => "50x50>" }, :default_url => "missing.png"
  validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
  ...

我刚刚添加了:msg和:个人资料样式,我尝试刷新它们,以便它们在我的视图中正确显示。

我尝试过跑步:

rake paperclip:refresh CLASS=User

我收到此错误:

rake aborted!
ArgumentError: wrong number of arguments (0 for 1)
/home/jrile/rails/cs480/app/models/user.rb:44:in `hash'
/home/jrile/.rvm/gems/ruby-2.1.0/gems/paperclip-4.1.1/lib/paperclip/attachment_registry.rb:42:in `names_for'
/home/jrile/.rvm/gems/ruby-2.1.0/gems/paperclip-4.1.1/lib/paperclip/attachment_registry.rb:16:in `names_for'
/home/jrile/rails/cs480/lib/tasks/paperclip.rake:15:in `obtain_attachments'

这里是user.rb的第44行(不知道为什么这与回形针有关)

def User.hash(token)
    Digest::SHA1.hexdigest(token.to_s)
end

我试图在railstutorial.org之后添加一个头像。

编辑:此外,在我尝试显示头像的所有视图中,它都会显示&#34;:msg&#34;即使我试图显示另外两个中的一个。即,

<%= image_tag user.avatar.url(:profile) %>

显示50x50的头像。

1 个答案:

答案 0 :(得分:1)

关于第一个问题,请从SO question

开始

你不应该覆盖像object#hash这样的ruby核心方法,因为它们是出于特定的原因而改变它们的行为可能会导致意想不到的结果,显然教程later会改为:{/ p>

def User.digest(token)
  Digest::SHA1.hexdigest(token.to_s)
end