`
dawnzhang
  • 浏览: 44873 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Ruby学习--用ActiveRecord操作数据库错误之连接1

    博客分类:
  • Ruby
阅读更多

控制台信息:

c:/ruby/lib/ruby/1.8/readbytes.rb:21:in `read': Invalid argument (Errno::EINVAL)
 from c:/ruby/lib/ruby/1.8/readbytes.rb:21:in `readbytes'
 from c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/message.rb:32:in `read'
 from c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/connection.rb:30:in `initialize'
 from c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/connection.rb:29:in `loop'
 from c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/connection.rb:29:in `initialize'
 from c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/postgres-compat.rb:23:in `new'
 from c:/ruby/lib/ruby/gems/1.8/gems/postgres-pr-0.4.0/lib/postgres-pr/postgres-compat.rb:23:in `initialize'
 from c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/connection_adapters/postgresql_adapter.rb:24:in `connect'
  ... 9 levels...
 from c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/base.rb:1490:in `initialize_without_callbacks'
 from c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/callbacks.rb:225:in `initialize'
 from test.rb:17:in `new'
 from test.rb:17

看完有点莫名其妙,但可以肯定的是:错误来自数据库。找到PostgreSQl的日志:

2007-02-11 23:13:38 FATAL:  database "hello" does not exist
2007-02-11 23:18:48 FATAL:  database "hello" does not exist

原来如此,数据库名称不确,用SQLServer用惯了,难免出现这种大小写错误,立马改过"Hello"

ruby 代码
  1. require 'rubygems'   
  2. require_gem 'activerecord'  # 请注意使用rubygems时候的声明方式   
  3.   
  4. # 连接数据库,按需求填写各种参数。   
  5. ActiveRecord::Base.establish_connection(   
  6. :adapter => "postgresql",   
  7. :host => "localhost",    
  8. :username => "admin",   
  9. :password => "admin",   
  10. :database => "hello")   
  11.   
  12. class Resource < ActiveRecord::Base # 开始ORM对应   
  13.   set_table_name 'resource' # 指定数据库名   
  14. end  
  15.   
  16. # 插入一条数据   
  17. tab = Resource.new("id" => 8)   
  18. tab.id = 8   
  19. tab.name = 'ActiveRecord'   
  20. tab.save  
分享到:
评论

相关推荐

    Ruby-DataObjects企图重写现有的Ruby数据库驱动程序符合一个标准接口

    5. **错误处理(Error Handling)**:DataObjects为所有可能的数据库错误提供了统一的异常处理机制,使得开发者可以编写通用的错误处理代码,而无需考虑底层数据库系统的具体错误信息。 通过使用DataObjects,...

    ruby-mysql-0.2.6.tar.gz

    6. **错误处理**:当发生数据库错误时,`ruby-mysql`库会抛出异常,以便开发者可以捕获并处理这些错误。 7. **兼容性**:此库适用于多种Ruby实现,包括MRI(Matz's Ruby Interpreter)、JRuby(Java平台上的Ruby)...

    Ruby-RubySQLite中的语言学习工具

    在实际开发中,通常会使用ORM(对象关系映射)框架,如ActiveRecord(它是Ruby on Rails的一部分),来简化数据库操作并提供更好的抽象层。 `langdb-master`这个文件名可能表示的是一个包含语言学习数据库的项目,...

    mysql-ruby-2.8.2.tar.gz

    MySQL Ruby 是一个用于 Ruby 语言的 MySQL 数据库接口,它为 Ruby 开发者提供了一个方便、高效的工具来连接和操作 MySQL 数据库。`mysql-ruby-2.8.2.tar.gz` 是这个库的源代码压缩包,版本号为 2.8.2。这个包遵循 ...

    Apress Pro ActiveRecord Databases with Ruby and Rails.pdf

    《Pro ActiveRecord:Databases with Ruby and Rails》这本书深入探讨了如何使用ActiveRecord这一对象关系映射(Object Relational Mapping, ORM)工具来管理和操作数据库,特别是在Ruby on Rails框架中的应用。...

    Ruby-MongoidMongoDB的RubyODMObjectDocumentMapper框架

    而Mongoid则为Ruby开发者提供了一种方便的方式来与MongoDB交互,将数据模型化为Ruby对象,使得在Ruby应用中操作数据库变得更加直观和简单。 1. **什么是ODM(Object-Document-Mapper)?** ODM(Object-Document-...

    ruby-pg:Ruby的PostgreSQL客户端库

    在Ruby的世界里,`ruby-pg`是连接PostgreSQL数据库的标准库之一。 **1. PostgreSQL数据库系统** PostgreSQL是一种开源的关系型数据库管理系统(RDBMS),以其强大的功能、稳定性和高度的可扩展性而闻名。它支持标准...

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    5. **异常处理**:学习如何使用begin/rescue/ensure来捕获和处理程序运行时可能出现的错误。 6. **元编程**:Ruby的动态特性允许你在运行时修改代码,这是其独特魅力之一。元编程让你能够编写更加灵活和强大的代码...

    rails2.1與Oracle 連結所需gem

    在Rails中,我们通常使用特定的gem来连接不同的数据库系统,对于Oracle而言,这个gem通常是`ruby-oci8`或`activerecord-oracle_enhanced-adapter`。 在Rails 2.1时代,开发者需要安装和配置这些gem来确保Rails应用...

    Ruby-使用Postgres实现一个Leancloudclone

    模型(如`Object`)会与数据库表关联,并且可以使用ActiveRecord的查询接口进行数据操作。 对于身份验证和授权,可以使用如Devise这样的gem,它提供了一套完整的用户认证解决方案,包括注册、登录、密码重置等功能...

    Ruby入门教程 pdf文字版

    - **ActiveRecord**:ORM(Object-Relational Mapping),简化数据库操作。 7. **实践项目** - **命令行工具**:使用Ruby编写简单的命令行应用,处理文本或执行系统任务。 - **Web开发**:通过Ruby on Rails构建...

    ASP.NET源码——ActiveRecord简单实例.zip

    1. **对象关系映射(ORM)**:ORM允许开发者使用面向对象的方式来操作数据库,避免了直接编写SQL语句,提高了代码的可读性和可维护性。ActiveRecord模式是ORM的一种具体实现。 2. **实体类(Entity Class)**:在...

    记录存储-带成本-SQL-Ruby-Week-3

    Ruby提供了多种库,如ActiveRecord(它是Ruby on Rails框架的一部分),它允许开发者用面向对象的方式与数据库进行交互。通过ActiveRecord,我们可以定义模型,这些模型对应于数据库中的表,并且包含了对数据进行...

    Ruby-使用Goliath实现高性能微服务API完整模板

    8. **配置**:如数据库连接配置、环境变量等。 使用这个模板,开发者可以快速地构建起一个完整的微服务,只需根据自己的需求调整路由、业务逻辑和配置。此外,由于Goliath的异步特性,即使在处理大量并发请求时,也...

    GORM_ADO数据库操作模块.rar

    GORM,全称Grails Object Relational Mapping,是Grails框架中的数据持久化工具,它提供了简洁的API,使得开发者可以方便地进行数据库操作,类似于Java的Hibernate或Ruby on Rails的ActiveRecord。GORM不仅支持关系...

    WebServer_SourceCode_Ruby:Web服务器源代码Ruby版-服务器

    4. **数据库交互**:项目可能使用ActiveRecord(Ruby on Rails的一部分),一个强大的ORM(对象关系映射)工具,用于简化数据库操作。 5. **错误处理和日志记录**:良好的错误处理和日志记录机制对于调试和维护至关...

    ruby入门练习题.zip

    这些练习题可能会涉及到数据库连接,这将让你了解如何在Ruby中使用像`ActiveRecord`这样的ORM(对象关系映射)框架,以方便地进行数据库操作。 记住,理论学习是基础,但实践才能真正巩固知识。不断尝试、编写和...

    10分钟创建一个Ruby博客

    5. **数据库设置**:Ruby on Rails使用ActiveRecord来连接和操作数据库。你需要配置数据库连接(如SQLite、MySQL或PostgreSQL),并创建数据模型来映射到数据库表。 6. **路由**:Rails的路由系统定义了URL到控制器...

    Ruby and MongoDB Web Development

    3. **连接和配置**:讲解如何使用Ruby的MongoDB驱动程序建立与MongoDB服务器的连接,设置数据库和集合,并处理连接错误。 4. **查询与聚合**:MongoDB支持丰富的查询语法,包括查询筛选、排序、分页等。书中会介绍...

Global site tag (gtag.js) - Google Analytics