gpt4 book ai didi

ruby-on-rails - 在仅限 Rails 5 API 的应用程序中使用 Ransack

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:11 26 4
gpt4 key购买 nike

我最近开始开发一个仅使用 Rails 5 API 的应用程序,我包括了 jsonapi-resources 以及 ransack 以轻松过滤任何给定请求的结果。默认情况下,jsonapi-resources 提供基本的 CRUD 功能,但为了插入搜索参数以进行 ransack,我需要覆盖 Controller 中的默认索引方法:

class CarsController < JSONAPI::ResourceController

def index
@cars = Car.ransack(params[:q]).result
render json: @cars
end

end

现在,这工作正常,但它不再使用 jsonapi-resources 生成 JSON 输出,这意味着输出从:

# ORIGINAL OUTPUT STRUCTURE
{"data": [
{
"id": "3881",
"type": "cars",
"links": {
"self": ...
},
"attributes": {
...
}
}]
}

到默认的 Rails JSON 输出:

[{
"id": "3881",
"attr_1": "some value",
"attr_2": "some other value"
}]

在这个 Controller 中修补索引方法时,如何保持原始输出结构?

最佳答案

尝试使用 gem https://github.com/tiagopog/jsonapi-utils .在您的情况下,问题将以这种方式解决:

class CarsController < JSONAPI::ResourceController
include JSONAPI::Utils

def index
@cars = Car.ransack(params[:q]).result
jsonapi_render json: @cars
end
end

关于ruby-on-rails - 在仅限 Rails 5 API 的应用程序中使用 Ransack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42925848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com