Подтвердить что ты не робот

Модуль InstanceMethods внутри ActiveSupport:: Концерн.. Предупреждение об устаревании

У меня есть портфолио, построенное в Синатре. Я не работал над этим некоторое время, делал некоторые Rails. Вчера я обновил свой список драгоценных камней, запустив "gem update". Я не знаю, имеет ли это какое-либо отношение к этому, но сегодня я снова начал работать на веб-сайте портфолио, и я получаю предупреждения об устаревании.

ПРЕДУПРЕЖДЕНИЕ О ДЕПРЕКАЦИИ: модуль InstanceMethods внутри ActiveSupport:: Концерн больше не будет включаться автоматически. Пожалуйста, определите методы экземпляра непосредственно в Работе. (из включить в /Users/joris/Desktop/sinatra/portfolio/models/work.rb:2)

Я не уверен, как это исправить, и когда я запускаю приложение, он больше не работает. Переход на мои маршруты просто возвращает страницу Sinatra 404. (Кроме того, не является частью ActiveSupport Rails? Почему это происходит в моем приложении Sinatra..)

Файл, который он упоминает в ошибке, - work.rb:

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

    timestamps!
end

Это мой основной файл (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'

Файл инициализации моделей (который вызывает файл work.rb) имеет следующее содержимое:

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: Просто увидел, что я тоже получаю его за models/post.rb

ПРЕДУПРЕЖДЕНИЕ О ДЕПРЕКАЦИИ: модуль InstanceMethods внутри ActiveSupport:: Концерн больше не будет включаться автоматически. Пожалуйста, определите методы экземпляра непосредственно в Post вместо этого. (из включить в /Users/joris/Desktop/sinatra/portfolio/models/post.rb:2)

4b9b3361

Ответ 1

Где-то в вашем приложении (или его зависимостях) вы делаете

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

и активная поддержка сообщают вам сделать

module Blah
  extend ActiveSupport::Concern
  def foo
  end
end

Вы правы, что Active Support является частью Rails, но, как и Active Record, она также может использоваться без остальной части рельсов. Mongo mapper использует его, например, и на беглом взгляде использует устаревшую InstanceMethods идиому в кучке мест