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 originalmodule Picturable
extend ActiveSupport::Concern
included do
after_save :guardar_imagen
end
PATH_ARCHIVOS = File.join Rails.root, "public", "archivos"
def archivo=(archivo)
unless archivo.blank?
@archivo = archivo
if self.respond_to?(:nombre)
self.nombre = archivo.original_filename
end
self.extension = archivo.original_filename.split(".").last.downcase
end
end
def path_archivo
File.join PATH_ARCHIVOS, "#{self.id}.#{self.extension}"
end
def tiene_archivo?
File.exists? path_archivo
end
private
def guardar_imagen
if @archivo
FileUtils.mkdir_p PATH_ARCHIVOS
File.open(path_archivo, "wb") do |f|
f.write(@archivo.read)
end
@archivo = nil
end
end
end
---------------------------------------------------------------------------------------
Aquí llamo al Concern: app/models/post.rb
Código RUBY:
Ver originalclass Post < ActiveRecord::Base
belongs_to :usuario
has_many :attachments # Un post puede tener muchos Attachments
validates :titulo, presence: true, uniqueness: true
include Picturable #Llamar al Concern (AQUI ME MARCA ERROR!!)
end
----------------------------------------------------------------------------------------
Y aquí también llamo al Concern: app/models/attachment.rb
Código RUBY:
Ver originalclass Attachment < ActiveRecord::Base
belongs_to :post # Pertenece a: :post
include Picturable #Llamar al Concern (AQUI ME MARCA ERROR TAMBIEN!!)
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 originalclass PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
before_action :authenticate_usuario!, except: [:show, :index]
# GET /posts
# GET /posts.json
def index
@posts = Post.all #AQUI MARCA ERROR!!!
end
...
...
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!