如何通过带有动态活动记录类的Ruby脚本获取WordPress数据库表?

vel*_*gan 5 ruby wordpress

我目前有一个内置于WordPress的网站,已注册超过1000个客户.我是否能够在ruby代码中从WordPress数据库中提取信息

需要对我的客户无缝的方式?无需再次注册?

注意: 此代码应动态创建活动记录类或模型,而不是手动定义活动记录模型

小智 6

没有Gem你可以通过Ruby脚本本身实现这一点

我假设你有rails应用程序,你可以创建rake任务来从WordPress数据库中获取数据

步骤1:

value = {host: "192.*.*.*", username: '', password: '', database: ''}

ActiveRecord::Base.establish_connection(
      adapter: 'mysql2',
      encoding: 'utf8',
      pool: 5,
      host: value[:host],
      username: value[:username],
      password: value[:password],
      database: value[:database]
  )
Run Code Online (Sandbox Code Playgroud)

第2步:

然后定义需要获取的数据库表

database_tables = {:"database_name" =>  ["SaveContactForm7_1", "SaveContactForm7_2","SaveContactForm7_3","SaveContactForm7_4"]}
Run Code Online (Sandbox Code Playgroud)

第3步:

tables = database_tables[key]
Key refers to the database name
Run Code Online (Sandbox Code Playgroud)

第4步:

tables.each do |table|
    MODEL_CLASS= table
    Object.const_set(MODEL_CLASS, Class.new(ActiveRecord::Base) { def self.name() MODEL_CLASS end;def self.table_name() MODEL_CLASS end })
    records = MODEL_CLASS.constantize.all
    results = []
    records.each do |record|
      set = {}
      columns = MODEL_CLASS.constantize.column_names

       p columns

      columns.each do |column|
       p record.send(column.to_sym)
       p set[:mobile] = record.send(column.to_sym) 
      end

      results << set
      p record
    end

    p "Task done...."
    p results
  end
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到哈希数组.您可以插入到您的活动记录模型中

请随意提出您的建议