更新しようとすると Paperclip Rails エラーが発生する

概要

私のユーザーモデル:

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に従ってアバターを追加しようとしていました。

編集:また、アバターを表示しようとしているすべてのビューでは、他の2つのうちの1つを表示しようとしている場合でも、「:msg」が表示されます。つまり、

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

は 50x50 のアバターを表示しています。

解決策

最初の問題については、このSOの質問から

object#hash のような Ruby のコア メソッドをオーバーライドすべきではありません。これらのメソッドは特定の理由で作成されており、その動作を変更すると予期しない結果が生じる可能性があります。どうやらチュートリアルの後半でこれが次のように変更されるようです。

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