我有如下三个文件:
database.rb
- 代表一个数据库log.rb
- 记录数据库中发生的事情main.rb
- 接受用户输入并从其他文件调用函数的驱动程序
数据库.rb
class Database
def initialize()
@data = Hash.new
@modified_recently = false
end
def build_db
# Reads CSV file into program
end
end
主.rb
require_relative "./database"
require_relative "./log"
db = Database.new # Create a new database
log = Log.new # Create a new log
db.build_db # Build the database from a file
问题是我需要日志才能访问数据库。但是,我正在 main.rb
中创建对象(它需要 log.rb
因此我不能从那里也需要它)。我的设置完全错误吗?我怎样才能:
- 让
main
向database
和log
发送命令> - 有
数据库
存储数据 - 让
log
能够了解数据库中发生的事情
最佳答案
如果我正确理解了问题,只需将 Database
的实例传递给 Log
的构造函数:
class Log
def initialize db
@db = db
end
...
end
在 main.rb
中:
db = Database.new # Create a new database
log = Log.new db # Create a new log
关于ruby - 从文件外部访问实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565314/