Ruby 脱离 Rails Web 项目单独使用 ActiveRecord

btc022003 · 2016年04月22日 · 最后由 pathbox 回复于 2016年04月22日 · 2495 次阅读

在很多时候,我们不需要新建一个 rails 项目生成控制器之类的文件,需要直接单独调用 active_record 对数据库进行操作 (如:设置过期会员的状态、删除长期无用的数据、做定时推送等),执行效率也会高很多。 具体操作如下 (这个是针对 mysql 的,当然只需要根据自己的需求修改数据库链接就好)。

require 'rubygems'
require 'active_record'

# 单独使用active_record对数据库进行查询
ActiveRecord::Base.establish_connection(:adapter=>'mysql2',
  :encoding=> 'utf8',
  :reconnt=> false,
  :timeout=> 5000,
  :username=>'用户名',
  :password=>'数据库密码',
  :host=>'数据库地址',
  :port=>'3306',
  :pool=>'5',
  :database=>'数据库名')

# 对应数据库表的model映射
class Music < ActiveRecord::Base 
end 

# 完成以上内容的配置后,就和rails中的写法一样了
p Music.find_by_src("1").nil?
exit 

如何做定时任务就简单多了,针对不同的操作系统应该有相应的方法。只需要把这个*.rb 做一个.sh 文件调用就好 (如使用 ubuntu 的 crontab 创建定时执行 sh 文件调用写好的 ruby 处理文件)。

逐渐轻量化使用 rails。rails 也可以不用了,直接写 rack server,拿需要的组件。而不是每回都 rails new。当然还是看需求情况了,不过应该会有不少情况可以用 rack 就可以解决

需要 登录 后方可回复, 如果你还没有账号请 注册新账号