Ruby on rails连接问题

mar*_*r75 28 mysql activerecord ruby-on-rails

我有一个Ruby on Rails项目,我在托管服务器上开发,但已经决定在我的本地Windows机器上工作.

为了开始,我想我确保我可以从旧项目中取出我的模型并将它们放入一个新项目中,然后在控制台中查询它们.这失败了.

编辑以反映更准确的问题:rails构建以查询我的模型的连接只能运行一个查询,然后为所有后续查询提供"未连接​​"异常.谁知道发生了什么事?我已经检查了很多配置.如果在mysql服务器上有一些我不知道的设置,我会愿意看一下.

堆栈跟踪:

Price.find(1)
ActiveRecord::StatementInvalid: Mysql::Error: query: not connected: SHOW FIELDS FROM `prices`
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/abstract_adapter.rb:212:in `log'
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:320:in `execute'
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/connection_adapters/mysql_adapter.rb:466:in `columns'
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1271:in `columns'
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1279:in `columns_hash'
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1578:in `find_one'
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:1569:in `find_from_ids'
        from c:/Program Files/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/base.rb:616:in `find'
        from (irb):2
Run Code Online (Sandbox Code Playgroud)

我已经验证我的MySQL数据库正在接受连接并且具有我期望的数据和结构.我已经仔细检查了我的连接等等.任何人都可以解决一些问题吗?

bje*_*lli 82

我在aptana论坛找到了解决这个问题的方法.

在那里它说MySQL 5.1客户端库不能很好地使用Rails 2.2他们提供的解决方案很简单:下载一个较旧的MySQL客户端库(libmySQL.dll)并将其复制到您的Ruby\bin文件夹.

这对我有用(Windows XP,Ruby 1.8.6,Rails 2.3.3,mysql 5.1.33)

  • 哇,很高兴我找到了这篇文章!现在工作得很好,感谢小费! (3认同)
  • 非常感谢你.令人失望的是,在许多地方,mysql和ruby项目相互链接,包括如何让这个堆栈在Windows上工作的分步指南,这个项目没有被提及. (2认同)