Off The Rails: 使用ActiveRecord与Grape、Sinatra、Rack等

Off The Rails: 使用ActiveRecord与Grape、Sinatra、Rack等

otr-activerecordOff The Rails: Use ActiveRecord with Grape, Sinatra, Rack, or anything else!项目地址:https://gitcode.com/gh_mirrors/ot/otr-activerecord

项目介绍

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开发场景。

otr-activerecordOff The Rails: Use ActiveRecord with Grape, Sinatra, Rack, or anything else!项目地址:https://gitcode.com/gh_mirrors/ot/otr-activerecord

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑悦莲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值