Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2015, 01:28
Gabriel_024
 
Fecha de Ingreso: enero-2015
Ubicación: Tegucigalpa
Mensajes: 25
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Problema haciendo Concern Ruby on Rails --> NameError in PostsController#index

Hola, estoy aprendiendo RoR y llevo ya varias horas tratando de solucionar este problema, no sé qué está mal, creé un Concern para subir archivos al servidor cuando se crea un post y cuando se quiere cargar un archivo ya con el post creado, pero me da el error que coloqué en el título del tema, el Concern se llama "Picturable" que lo tengo en app/models/concerns/Picturable.rb aquí dejo el código de los archivos:

(El concern está bien porque cuando lo tenía unicamente en Attachment, funcionaba perfectamente, falla cuando lo convierto a Concern).

Este es el Concern, que está en: app/models/concerns/Picturable.rb

Código RUBY:
Ver original
  1. module Picturable
  2.     extend ActiveSupport::Concern
  3.  included do
  4.      after_save :guardar_imagen
  5.  end
  6.  
  7.   PATH_ARCHIVOS = File.join Rails.root, "public", "archivos"
  8.  
  9.   def archivo=(archivo)
  10.     unless archivo.blank?
  11.         @archivo = archivo
  12.         if self.respond_to?(:nombre)
  13.           self.nombre = archivo.original_filename
  14.         end
  15.         self.extension = archivo.original_filename.split(".").last.downcase                                                                
  16.     end
  17.   end
  18.  
  19.   def path_archivo
  20.     File.join PATH_ARCHIVOS, "#{self.id}.#{self.extension}"
  21.   end
  22.  
  23.   def tiene_archivo?
  24.     File.exists? path_archivo
  25.   end
  26.  
  27.   private
  28.   def guardar_imagen
  29.     if @archivo
  30.         FileUtils.mkdir_p PATH_ARCHIVOS
  31.         File.open(path_archivo, "wb") do |f|
  32.             f.write(@archivo.read)            
  33.         end
  34.         @archivo = nil
  35.     end
  36.   end
  37. end
---------------------------------------------------------------------------------------
Aquí llamo al Concern: app/models/post.rb
Código RUBY:
Ver original
  1. class Post < ActiveRecord::Base
  2.   belongs_to :usuario
  3.   has_many :attachments # Un post puede tener muchos Attachments
  4.   validates :titulo, presence: true, uniqueness: true
  5.   include Picturable #Llamar al Concern (AQUI ME MARCA ERROR!!)
  6. end
----------------------------------------------------------------------------------------
Y aquí también llamo al Concern: app/models/attachment.rb
Código RUBY:
Ver original
  1. class Attachment < ActiveRecord::Base
  2.   belongs_to :post # Pertenece a: :post
  3.   include Picturable #Llamar al Concern (AQUI ME MARCA ERROR TAMBIEN!!)
  4. end
---------------------------------------------------------------------------------------

Me marca error en el CONTROLADOR del post y del attachment en su acción INDEX resumiendo, en esta parte:
#Ruta: /app/controllers/posts_controller.rb
Código RUBY:
Ver original
  1. class PostsController < ApplicationController
  2.   before_action :set_post, only: [:show, :edit, :update, :destroy]
  3.   before_action :authenticate_usuario!, except: [:show, :index]
  4.  
  5.   # GET /posts
  6.   # GET /posts.json
  7.   def index
  8.     @posts = Post.all #AQUI MARCA ERROR!!!
  9.   end
  10.   ...
  11.   ...
  12. end
(al igual que en el controlador del attachment)
----------------------------------------------------------------------------------
Para finalizar el error completo que me lanza el browser dice:

NameError in PostsController#index
uninitialized constant Post::Picturable

Si me ayudaran a solventar este problema les agradecería mucho!