Pourquoi reçois-je un "undefined method for `has_attached_file` lors de l'installation de Trombone?

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

NoMethodError (undefined method `has_attached_file' for #<Class:0x10338acd0>):
  /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 à la will_paginate gem. De ce que je peux trouver, il semble que il ya quelque chose de mal avec mon PostsController#index ou peut-être déjà essayer d'installer la gem à la place du plugin, dans lequel cas, je l'ai lu, je devrais être en mesure de remédier par le biais de la /config/environments.rb fichier en quelque sorte.

Je ne pense pas que ce précédent gem installation de la matière comme je l'ai fait dans une vieille version du site que j'ai mis à la corbeille avant d'installer le plugin. Dans la version actuelle du site, je montre que le tableau a été mis à jour avec le Trombone colonnes 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 < ActiveRecord::Base

  has_attached_file :photo
  validates_presence_of :body, :title
  has_many :comments, :dependent => :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:

<h1>New post</h1>
<%= link_to 'Back', posts_path %>
<% form_for(@post, :html => { :multipart => true}) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<p>
<%= f.label :body %><br />
<%= f.text_area :body %>
</p>
<p>
<%= f.file_field :photo %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
  • L'erreur provient de la PostsController méthode "show", mais vous avez la "index" de la méthode et le contenu de la "nouvelle" vue collé là? Nettoyer votre question à inclure les informations pertinentes, et il est plus probable que quelqu'un peut vous aider à comprendre cela.
  • Aussi, je peux presque garantir que le plus grand indice il y a le fait que l'erreur est de référencement de Classe et pas de Post. Il devrait être assez évident une fois que nous voyons le code qui est en cause.
  • juste mis à jour pour la méthode show. Désolé à ce sujet. De nouveau à tout cela. Merci pour la direction.
  • veuillez accepter la deuxième réponse. il semble être une meilleure solution.
InformationsquelleAutor bgadoci | 2010-04-18