首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在Rails 5API应用程序中使用Ransack

仅在Rails 5API应用程序中使用Ransack
EN

Stack Overflow用户
提问于 2017-03-21 11:29:52
回答 1查看 2.8K关注 0票数 4

我最近开始只使用Rails 5API应用程序,我还包括了jsonapi-resourcesransack,以方便地过滤任何给定请求的结果。默认情况下,jsonapi-resources提供了基本的CRUD功能,但是为了插入ransack的搜索参数,我需要覆盖控制器中的默认索引方法:

代码语言:javascript
复制
class CarsController < JSONAPI::ResourceController

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

end

现在,这很好,但是它不再使用jsonapi-resources生成JSON输出,这意味着输出更改为:

代码语言:javascript
复制
# ORIGINAL OUTPUT STRUCTURE
{"data": [
  {
    "id": "3881",
    "type": "cars",
    "links": {
      "self": ...
    },
    "attributes": {
      ...
    }
  }]
}

到默认的Rails JSON输出:

代码语言:javascript
复制
[{
  "id": "3881",
  "attr_1": "some value",
  "attr_2": "some other value"
}]

如何在此控制器中修补索引方法时保留原有的输出结构?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-06 11:16:20

尝试使用gem https://github.com/tiagopog/jsonapi-utils。就你的情况而言,问题将以这种方式得到解决:

代码语言:javascript
复制
class CarsController < JSONAPI::ResourceController
  include JSONAPI::Utils

  def index
    @cars = Car.ransack(params[:q]).result
    jsonapi_render json: @cars
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42925848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档