Off The Rails: 使用ActiveRecord与Grape、Sinatra、Rack等
项目介绍
otr-activerecord
是一个开源项目,允许您在非Rails环境中使用ActiveRecord,如Grape、Sinatra、Rack等。该项目支持ActiveRecord 7.1、7.0和6.1版本,并提供了与Rails类似的配置和使用体验。
项目快速启动
1. 添加Gem到Gemfile
首先,将otr-activerecord
添加到您的Gemfile中:
gem "otr-activerecord"
2. 配置数据库连接
在加载Gem后,使用以下方法之一配置数据库连接:
- 从文件配置:
OTR::ActiveRecord.configure_from_file("config/database.yml")
- 从URL配置:
OTR::ActiveRecord.configure_from_url(ENV['DATABASE_URL'])
- 从哈希配置:
OTR::ActiveRecord.configure_from_hash(
adapter: "postgresql",
host: "localhost",
database: "db",
username: "user",
password: "pass",
encoding: "utf8",
pool: 10,
timeout: 5000
)
3. 连接数据库
如果您的应用使用单个数据库,使用以下助手:
OTR::ActiveRecord.establish_connection
如果使用多个数据库,调用基类:
MyBase.establish_connection(:primary)
MyBase.establish_connection(:primary_replica)
4. 启用中间件
对于Rack应用,添加以下中间件:
# 清理请求后的数据库连接
use OTR::ActiveRecord::ConnectionManagement
# 启用ActiveRecord的查询缓存
use OTR::ActiveRecord::QueryCache
5. 导入ActiveRecord任务
将以下内容添加到您的Rakefile中:
require "bundler/setup"
load "tasks/otr-activerecord.rake"
namespace :db do
task :environment do
require_relative "app"
end
end
应用案例和最佳实践
应用案例
otr-activerecord
可以用于构建轻量级的API服务,如使用Grape框架构建的RESTful API。它还适用于需要快速开发和部署的小型项目,如内部工具或原型开发。
最佳实践
- 配置管理:使用环境变量或配置文件来管理数据库连接,以提高灵活性和安全性。
- 中间件优化:确保正确使用中间件来管理数据库连接和查询缓存,以提高性能。
- 测试覆盖:使用Docker或Podman进行多版本的ActiveRecord和Ruby测试,确保兼容性和稳定性。
典型生态项目
Grape
Grape是一个用于构建RESTful API的微框架,与otr-activerecord
结合使用可以快速构建高性能的API服务。
Sinatra
Sinatra是一个轻量级的Web应用框架,与otr-activerecord
结合使用可以快速开发小型Web应用。
Rack
Rack为Ruby Web应用提供了一个最小化、模块化和适应性强的接口,与otr-activerecord
结合使用可以构建灵活的Web应用。
通过这些生态项目的结合,otr-activerecord
可以广泛应用于各种Ruby Web开发场景。