ActiveHashRelation 开源项目教程
项目介绍
ActiveHashRelation 是一个简单的 gem,允许你使用普通的 Hash 运行多个 ActiveRecord::Relation 查询。这对于 API 非常完美,因为它提供了一种强大而简单的方式来处理 ActiveRecord 查询。
项目快速启动
安装
首先,你需要安装这个 gem。你可以通过以下命令来安装:
gem install active_hash_relation
使用
在你的 Rails API 控制器中,你可以这样使用 ActiveHashRelation:
class Api::V1::ResourceController < Api::V1::BaseController
include ActiveHashRelation
def index
resources = apply_filters(Resource.all, params)
authorized_resources = policy_scope(resources)
render json: resources, each_serializer: Api::V1::ResourceSerializer
end
end
应用案例和最佳实践
过滤基于范围的查询
如果你需要基于模型的范围进行过滤,你可以这样做:
[scopes: [planned: true]]
这将运行 planned
范围在资源上。
无范围的关联
如果你在模型中有默认范围,并且你需要在过滤关联时覆盖它,你可以这样做:
# config/initializers/active_hash_relation.rb
ActiveHashRelation.configure do |config|
config.use_unscoped = true
end
典型生态项目
ActiveHashRelation 通常与其他 Rails 相关的 gem 和工具一起使用,例如:
- Rails:用于构建 API 和后端逻辑。
- ActiveRecord:用于数据库交互。
- RSpec:用于测试。
这些工具和 gem 共同构成了一个强大的生态系统,帮助你构建高效和可维护的 Rails 应用程序。