【问题标题】:Rails 4 - Pull data from external MySQLRails 4 - 从外部 MySQL 中提取数据
【发布时间】:2016-05-17 20:12:04
【问题描述】:

我正在尝试将外部 MySQL 数据库连接到 Rails 4 并从那里读取数据。所以到目前为止我做了什么:

  • lib/primo_db.rb中创建
  • 创建模型models/accountstatus.rb

primo_db.rb

require 'active_record'  
require 'mysql'

class PrimoDatabase < ActiveRecord::Base
  self.abstract_class = true
  establish_connection(
  :adapter  => 'mysql',
  :database => '...',
  :host     => '...',
  :username => '...',
  :password => '...'
  )
end

account.rb

require 'primo_database'

    class Account < PrimoDatabase
        self.table_name = 'account'
        def self.getdata

        end
    end

我的问题是:

  • 如何在控制台中测试它们之间的连接,因为当我在 Rails 控制台中运行 Accountstatus.getdata 时,我收到此错误 NameError: uninitialized constant PrimoDatabase

  • 如果我运行ActiveRecod::Base.connection?,它会返回false

我知道我做错了什么,因此我将不胜感激。

已编辑 - 查看答案以了解我在下面做了什么

【问题讨论】:

  • 尝试将您的primo_db.rb 文件重命名为primo_database.rb,以便文件名和在其上定义的类具有相同的名称
  • 您是否在某处需要lib/primo_db
  • @Bustkiller 当我重命名文件夹时,它没有帮助,同样的错误..@spickermann 我尝试了,当我输入 Accountstatus.getdata => nil 时我没有收到错误但是当我试图找到仍然错误的东西时:不存在:SELECT accountstatuses.* FROM accountstatuses
  • 然后呢?您的数据库中是否存在名为accountstatuses 的表?
  • 这不是我真正想要的......不想使用本地只是能够从外部 mysql db 读取数据

标签: mysql ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

好吧,我知道我在哪里做错了。

  • 该文件必须像该文件中的类一样命名,所以对我来说:account.rb 和类Account &lt; PrimoDatabase
  • 那么在require '*.rb'的课前应该有lib
  • 然后我必须添加self.table_name = 'account' 来指定表格
  • 联系电话是Account.connection

然后我可以连接到数据库并从那里提取数据。 希望它对某人有所帮助。

编辑我的问题以正确回答

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多