尝试刷新时出现 Paperclip Rails 错误

问题描述 投票:0回答:1

我的用户模型:

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 和 :profile 样式,我正在尝试刷新它们,以便它们正确显示在我的视图中。

我尝试过跑步:

rake paperclip:refresh CLASS=User

我收到此错误:

rake aborted!
ArgumentError: wrong number of arguments (0 for 1)
/home/rails/cs480/app/models/user.rb:44:in `hash'
/home/.rvm/gems/ruby-2.1.0/gems/paperclip-4.1.1/lib/paperclip/attachment_registry.rb:42:in `names_for'
/home/.rvm/gems/ruby-2.1.0/gems/paperclip-4.1.1/lib/paperclip/attachment_registry.rb:16:in `names_for'
/home/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之后添加头像。

编辑:此外,在我尝试显示头像的所有视图中,即使我尝试显示其他两个之一,它也会显示“:msg”。即,

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

显示 50x50 头像。

ruby-on-rails ruby paperclip
1个回答
1
投票

对于第一个问题,来自这个SO问题

你不应该重写像 object#hash 这样的 ruby 核心方法,它们是出于特定原因而创建的,改变它们的行为可能会导致意外的结果,显然在教程中稍后这将更改为:

def User.digest(token)
  Digest::SHA1.hexdigest(token.to_s)
end
© www.soinside.com 2019 - 2024. All rights reserved.