2011-12-30 15 views
17

Tôi có một trang web danh mục đầu tư được xây dựng ở Sinatra. Tôi đã không làm việc trên nó một thời gian, đã làm một số Rails. Tôi cập nhật danh sách đá quý của mình ngày hôm qua bằng cách chạy 'gem update'. Tôi không biết liệu điều này có liên quan gì đến điều đó không, nhưng tôi đã bắt đầu làm việc trên trang web danh mục đầu tư hôm nay và tôi đã nhận được một số cảnh báo không dùng nữa.Mô-đun InstanceMethods bên trong ActiveSupport :: Quan tâm .. Khấu hao Cảnh báo

DEPRECATION CẢNH BÁO: Mô-đun InstanceMethods bên trong ActiveSupport :: Mối quan tâm sẽ không còn được tự động bao gồm. Vui lòng xác định các phương thức thể hiện trực tiếp trong Work. (Gọi từ bao gồm ít /Users/joris/Desktop/sinatra/portfolio/models/work.rb:2)

Tôi không chắc chắn làm thế nào để khắc phục điều này và khi tôi chạy ứng dụng nó không làm việc nữa .. đi đến tuyến đường của tôi chỉ trả về trang Sinatra 404. (? Ngoài ra, không phải là một phần của ActiveSupport Rails Tại sao điều này sắp lên trong ứng dụng Sinatra của tôi ..)

File nó đề cập đến trong các lỗi là work.rb:

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

    timestamps! 
end 

Đây là chính tôi file (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' 

các mô hình init tập tin (trong đó kêu gọi các tập tin work.rb) có những nội dung:

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: Chỉ cần thấy tôi cũng đang nhận được nó cho models/post.rb

deprecation Chú ý: Các module InstanceMethods bên ActiveSupport :: Lo ngại sẽ không còn bao gồm tự động. Vui lòng xác định các phương thức thể hiện trực tiếp trong Bài đăng thay thế. (Gọi từ bao gồm ít /Users/joris/Desktop/sinatra/portfolio/models/post.rb:2)

Trả lời

41

Một nơi nào đó trong ứng dụng của bạn (hoặc phụ thuộc của nó), bạn đang làm

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

và hỗ trợ tích cực là nói cho bạn để làm

module Blah 
    extend ActiveSupport::Concern 
    def foo 
    end 
end 

bạn nói đúng đó hỗ trợ tích cực là một phần của Rails, nhưng cũng giống như Active Record nó cũng có thể được sử dụng mà không phần còn lại của đường ray. Mongo mapper sử dụng nó ví dụ, và tại một cái nhìn lướt qua nó sử dụng các thành ngữ không được chấp nhận InstanceMethods trong một loạt các nơi

+0

Tôi không làm điều đó ở bất cứ đâu. Tuy nhiên, mã lỗi của nó (các mô hình của tôi) bao gồm MongoMapper :: Document. Có lẽ nó có thể là một 'lỗi' trong MongoMapper? Cảm ơn bạn đã trả lời :) – cabaret

+0

Trình vẽ bản đồ Mongo dường như đang sử dụng biểu mẫu mới không được chấp nhận. –

+0

Tôi đã xóa tất cả các tham chiếu đến mongo_mapper và trang của tôi hiện đang tải. Đoán tôi sẽ phải chờ đợi cho một bản cập nhật hoặc tìm kiếm một thay thế. Cảm ơn :) – cabaret