acabo instalado el plug-in para Paperclip y yo estoy recibiendo el siguiente mensaje de error pero no estoy seguro de por qué:?¿Por qué recibo un "método no definido para` has_attached_file` al instalar PaperClip
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'
Es haciendo referencia a la gema will_paginate. Por lo que puedo encontrar, parece que o bien hay algo mal con mi PostsController#index
o quizás un intento anterior de instalar la gema en lugar del plugin, en cuyo caso he leído que debería ser capaz de remediar a través del /config/environments.rb
archivo de alguna manera.
No pensé que la instalación previa de la gema importaría ya que lo hice en una versión anterior del sitio que destruí antes de instalar el complemento. En la versión actual del sitio, muestro que la tabla se ha actualizado con las columnas Paperclip después de la migración. Aquí está mi código:
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
modelo:
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 %>
El error proviene del método PostsController "espectáculo", pero que tenga el método de "índice" y el contenido de la "nueva" vista pegado allí? Limpie su pregunta para incluir la información relevante, y es más probable que alguien pueda ayudarlo a resolver esto. – jdl
Además, casi puedo garantizar que la mayor pista es que el error hace referencia a la clase y no a la publicación. Debería ser bastante obvio una vez que veamos el código real que está fallando. – jdl
recién actualizado para el método show. Lo siento por eso. Nuevo en todo esto. Gracias por la dirección. – bgadoci