用于在类中调用methode的未定义方法

时间:2016-07-25 16:45:26

标签: ruby ruby-on-rails-4

我尝试调用我的方法 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

1 个答案:

答案 0 :(得分:0)

目前还不清楚为什么要将你的模块包含在国外课程中,但这是可行的:

Mysql2::Client.include Sgbd

上面的行应该放在e。 G。在class StreamMysql声明之前。