独立使用ActiveRecord

ActiveRecord虽然在rails里,但却是可以独立使用的。

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

[code]
sudo gem install activerecord
[/code]

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

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

另外假设目录结构是与rails生成的一样。生成model:where_store
[code]
ruby script/generate resource where_store stuff:string location:string store_type:string
[/code]
这将会缺省生成在app/models目录下,符合rails。

生成数据库:
[code]
rake db:migrate
[/code]

建一个ruby文件,假如:lib/robot.rb

require "rubygems"
require "active_record"
require "yaml"
require "logger"
Dir["app/models/*.rb"].each(){|f| require f}

module Robot

module_function

LOGGER=Logger.new("log/robot.log", "daily")

def debug_log(msg)
LOGGER.debug(msg)
end

def connect_db
ActiveRecord::Base.establish_connection(
YAML.load_file("config/database.yml")["development"])
end

def run
connect_db()
end
end


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

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

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

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

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

还可以写个简单的脚本(script/run_robot)来执行这个:
[code]
#!/usr/bin/env ruby
require "lib/robot"

Robot.run
[/code]

在shell下执行:
[code]
ruby script/run_robot
[/code]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值