独立使用ActiveRecord

来源:互联网 发布:djvu转pdf mac 编辑:程序博客网 时间:2024/06/06 08:49

    博客分类:
  • ruby
ActiveRecordRailsRubyrubygems数据结构
ActiveRecord虽然在rails里,但却是可以独立使用的。

也就是说它可以脱离rails环境,在ruby环境里使用,当然要事先安装好。

Java代码 复制代码 收藏代码
  1. sudo gem install activerecord


如果已经装好了rails就不需要了。

比较好的习惯是按照传统rails方法建好数据库配置文件和model。

另外假设目录结构是与rails生成的一样。生成model:where_store
Java代码 复制代码 收藏代码
  1. ruby script/generate resource where_store stuff:string location:string store_type:string

这将会缺省生成在app/models目录下,符合rails。

生成数据库:
Java代码 复制代码 收藏代码
  1. rake db:migrate


建一个ruby文件,假如:lib/robot.rb
Ruby代码 复制代码 收藏代码
  1. require "rubygems"
  2. require "active_record"
  3. require "yaml"
  4. require "logger"
  5. Dir["app/models/*.rb"].each(){|f| require f}
  6. module Robot
  7. module_function
  8. LOGGER=Logger.new("log/robot.log","daily")
  9. def debug_log(msg)
  10. LOGGER.debug(msg)
  11. end
  12. def connect_db
  13. ActiveRecord::Base.establish_connection(
  14. YAML.load_file("config/database.yml")["development"])
  15. end
  16. def run
  17. connect_db()
  18. end
  19. end


这里require了比较多的东西,而且最后把app/models/*.rb全部包括进来了,因为不启动rails,只是用一下目录结构和activerecord,所以就需要人工引用。

YAML则是载入数据库配置文件,并且取出development的配置。

LOGGER当然是生成一个日志文件。

这里仅仅连接了一下数据库,并没有干别的事,其他的用法与rails里一样,直接可以使用WhereStore.find, .new 等等。

非常简单,没有惊动rails,仅仅是使用了active record。

还可以写个简单的脚本(script/run_robot)来执行这个:
Java代码 复制代码 收藏代码
  1. #!/usr/bin/env ruby
  2. require "lib/robot"
  3. Robot.run


在shell下执行:
Java代码 复制代码 收藏代码
  1. ruby script/run_robot


当然,什么也没有输出,这就说明连接正常,如果出错,可以检查一下数据库连接和表是否创建。

原创粉丝点击