2011-12-30 13 views
17

Tengo un sitio web de cartera construido en Sinatra. No he trabajado en eso por un tiempo, he estado haciendo algunos Rails. Actualicé mi lista de gemas ayer al ejecutar 'gem update'. No sé si esto tiene algo que ver con eso, pero hoy comencé a trabajar en el sitio web de la cartera y recibí advertencias de desaprobación.El módulo InstanceMethods dentro de ActiveSupport :: Preocupación ... Advertencia de desaprobación

Deprecation ADVERTENCIA: El módulo InstanceMethods dentro ActiveSupport :: La preocupación ya no será incluido automáticamente. Defina métodos de instancia directamente en Work en su lugar. (Llamado desde incluir al /Users/joris/Desktop/sinatra/portfolio/models/work.rb:2)

No estoy seguro de cómo solucionar este problema y cuando corro la aplicación no lo hace trabaja más ... ir a mis rutas solo devuelve la página Sinatra 404. (? Además, no es parte de ActiveSupport Rieles ¿Por qué es ésta que sube en mi aplicación Sinatra ..)

El archivo se menciona en el error es work.rb:

class Work 
    include MongoMapper::Document 
    key :title, String 
    key :url, String 
    key :filename, String 
    key :file, String 
    key :description, String 

    timestamps! 
end 

Ésta es mi principal archivo (portfolio.rb):

require "sinatra" 
require 'twitter' 
require 'RedCloth' 
require 'html_truncator' 
require 'digest/md5' 

class Portfolio < Sinatra::Application 

    require_relative 'config/init' 
    require_relative 'helpers/init' 
    require_relative 'models/init' 
    require_relative 'routes/init' 

el archivo de inicio modelos (que llama al archivo work.rb) tiene estos contenidos:

require 'mongo_mapper' 

MongoMapper.connection = Mongo::Connection.new('lalaland.com', 10070) 
MongoMapper.database = 'hello' 
MongoMapper.database.authenticate('lalala', 'hello') 

require_relative 'post' 
require_relative 'work' 

EDIT: Acabo de ver que también estoy haciendo por models/post.rb

Deprecation ADVERTENCIA: El módulo InstanceMethods dentro ActiveSupport :: La preocupación ya no se incluyen automáticamente. Defina métodos de instancia directamente en Publicar en su lugar. (Llamado desde incluir al /Users/joris/Desktop/sinatra/portfolio/models/post.rb:2)

Respuesta

41

En algún lugar de su aplicación (o sus dependencias) que está haciendo

module Blah 
    extend ActiveSupport::Concern 
    module InstanceMethods 
    def foo 
    end 
    end 
    ... 
end 

y el apoyo activo que está diciendo que hacer

module Blah 
    extend ActiveSupport::Concern 
    def foo 
    end 
end 

tienes razón de que la ayuda activa es parte de los carriles, pero como Active Record que también se puede utilizar sin el resto de los carriles. Mongo mapper lo usa, por ejemplo, y en un vistazo rápido usa la expresión InstanceMethods obsoleta en un grupo de lugares

+0

no estoy haciendo que en cualquier lugar. Sin embargo, el código en el que comete errores (mis modelos) incluye MongoMapper :: Document. ¿Podría ser un 'error' en MongoMapper? Gracias por la respuesta :) – cabaret

+0

Mongo mapper parece estar utilizando el formulario recientemente desaprobado. –

+0

Eliminé todas las referencias a mongo_mapper y ahora se carga mi página. Supongo que tendré que esperar una actualización o buscar una alternativa. Gracias :) – cabaret

Cuestiones relacionadas