我尝试调用我的方法 check_table_exists 来检查我的表格。这个方法在我的模块上,我不明白为什么我会收到这个错误。
我知道@connexion
是一个Mysql2 :: Client实例,它不包含模块Sgbd
。但我不知道如何包含我的方法?
./yamlReadFile.rb:44:in `mysql_connection': undefined method `check_table_exists' for #<Mysql2::Client:0x000000033a7750> (NoMethodError)
$LOAD_PATH << '.'
require 'yaml'
require 'rubygems'
require 'mysql2'
require 'creatDatabase'
#binding.pry
class StreamMysql
include Sgbd
def mysql_connection(conf)
@connexion = Mysql2::Client.new(:host => conf['ost'], :username => conf['user'], :password => conf['password'], :table => conf['table'], :port => conf['port'])
if @connexion
puts check_table_exists
@connexion.check_table_exists
puts "connexion etablie"
else
puts "error connexion"
end
rescue Mysql2::Error => e
puts e.errno
puts e.error
@connexion.close
end
def read_config_file
config = YAML::load_file(File.join(__dir__, 'config.yml'))
conf = config['database']
mysql_connection(conf)
end
end
我的模块文件包含mehode check_table_exists
module Sgbd
# class ModuleCreateDatabase
def create_database
end
def check_table_exists
query=("SHOW TABLES;")
end
end
答案 0 :(得分:0)
目前还不清楚为什么要将你的模块包含在国外课程中,但这是可行的:
Mysql2::Client.include Sgbd
上面的行应该放在e。 G。在class StreamMysql
声明之前。