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了比较多的东西,而且最后把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]
当然,什么也没有输出,这就说明连接正常,如果出错,可以检查一下数据库连接和表是否创建。
也就是说它可以脱离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]
当然,什么也没有输出,这就说明连接正常,如果出错,可以检查一下数据库连接和表是否创建。