Pourquoi est-ce que j’obtiens une “méthode indéfinie pour` has_attached_file` lors de l’installation de PaperClip?

Je viens d’installer le plugin pour Paperclip et j’obtiens le message d’erreur suivant, mais je ne sais pas pourquoi:

NoMethodError (undefined method `has_attached_file' for #): /Users/bgadoci/.gem/ruby/1.8/gems/will_paginate-2.3.12/lib/will_paginate/finder.rb:170:in `method_missing' app/models/post.rb:2 app/controllers/posts_controller.rb:50:in `show' 

Il fait référence au gem will_paginate. D’après ce que je peux trouver, il semble qu’il y ait un problème avec mon PostsController#index ou peut-être une tentative précédente d’installer le gem au lieu du plugin, auquel cas j’ai lu que je devrais pouvoir corriger via /config/environments.rb fichier en quelque sorte.

Je ne pensais pas que l’installation de gem précédente importerait comme je l’ai fait dans une ancienne version du site que j’ai détruite avant d’installer le plugin. Dans la version actuelle du site, je montre que la table a été mise à jour avec les colonnes Paperclip après la migration. Voici mon code:

PostsConroller#show :

  def show @post = Post.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @post } end end 

Post modèle:

 class Post  :destroy has_many :tags, :dependent => :destroy has_many :votes, :dependent => :destroy belongs_to :user after_create :self_vote def self_vote # I am assuming you have a user_id field in `posts` and `votes` table. self.votes.create(:user => self.user) end cattr_reader :per_page @@per_page = 10 end 

/views/posts/new.html.erb :

 

New post

{ :multipart => true}) do |f| %>



Il est très important que vous redémarriez votre serveur après avoir installé de nouveaux gems / plugins. Cela devrait résoudre votre problème

Je suggère d’installer un bijou de trombone. Ensuite, il vous suffit d’append config.gem 'paperclip' à votre config.gem 'paperclip' environment.rb et d’exécuter sudo rake gems:install .

créer le fichier paperclip.rb dans config / initializers / paperclip.rb

Ajouter les lignes ci-dessous et redémarrer le serveur

exiger “trombone / railtie”

Trombone :: Railtie.insert

J’ai eu cette erreur spontanément sur 2 machines de développement différentes après que Paperclip fonctionnait correctement pendant des semaines.

spring stop

puis redémarré ma console de rails était nécessaire

Je suppose que cela aurait dû être évident, mais j’utilise mongo / mongoid comme couche de données et je devais installer un trombone mongoid pour que cela fonctionne.