我有一个使用Sinatra构建的作品集网站,已经有一段时间没做过了,最近一直在做Rails。昨天我通过运行'gem update'来更新我的 gem 列表,不知道是否与此有关,但今天我又开始在作品集网站上工作,并且收到了一些弃用警告。
“DEPRECATION WARNING: ActiveSupport::Concern 内部的 InstanceMethods 模块将不再自动包含。请直接在 Work 中定义实例方法。(由 /Users/joris/Desktop/sinatra/portfolio/models/work.rb 的 include 调用)”
我不确定如何解决这个问题,当我运行应用程序时它不再工作..访问我的路由只返回了Sinatra 404页面。(另外,ActiveSupport 不是 Rails 的一部分吗?为什么这会出现在我的 Sinatra 应用程序中..)
错误提到的文件是 work.rb:
“DEPRECATION WARNING: ActiveSupport::Concern 内部的 InstanceMethods 模块将不再自动包含。请直接在 Work 中定义实例方法。(由 /Users/joris/Desktop/sinatra/portfolio/models/work.rb 的 include 调用)”
我不确定如何解决这个问题,当我运行应用程序时它不再工作..访问我的路由只返回了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'
模型的 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'
编辑:刚刚发现我也在models/post.rb
中遇到了这个问题。
废弃警告:ActiveSupport::Concern内的InstanceMethods模块将不再自动包含。 请直接在Post中定义实例方法。(在/Users/joris/Desktop/sinatra/portfolio/models/post.rb的include处被调用)