Ruby on rails 使用Grape在json数组中组合多个对象

Ruby on rails 使用Grape在json数组中组合多个对象,ruby-on-rails,grape,Ruby On Rails,Grape,我正在rails应用程序中使用GrapeGem。当返回单个记录时,我可以使用grape活动模型序列化程序。返回多个对象时,我遇到一个未定义的错误。我应该如何构建我的多个竞选记录 app/controllers/api/v1/campaiments.rb 返回多条记录 resource :campaigns do desc "Return all campaigns" get "", root: :campaigns do @campaign_array =

我正在rails应用程序中使用GrapeGem。当返回单个记录时,我可以使用grape活动模型序列化程序。返回多个对象时,我遇到一个未定义的错误。我应该如何构建我的多个竞选记录

app/controllers/api/v1/campaiments.rb

返回多条记录

  resource :campaigns do

    desc "Return all campaigns"
    get "", root: :campaigns do
        @campaign_array = []
        @campaigns = Campaign.all
        @campaigns.each do |campaign|
            @campaign_array << {
              backers: campaign.orders.count,
              funded: campaign.orders.completed.sum(:quantity),
              campaign: campaign
            }
        end
        @campaign_array
    end
  end
返回单个记录

    desc "Return a campaign"
    get ":id", root: :campaign do

        @campaign = Campaign.where(id: permitted_params[:id]).first!
        {
          backers: @campaign.orders.count,
          funded: @campaign.orders.completed.sum(:quantity),
          campaign: @campaign
        }
    end
输出

{
    "backers": 1,
    "funded": 2,
    "campaign": {
        "id": 5,
        "min_funding_goal_units": 20,
        "product_name": "Another product",
        "product_description": "A product description",
    }
}

看起来您返回了一个未序列化的数组

  • 如果您只返回
    @活动
    ,您的
    索引是否有效?(只是为了确保问题来自序列化)
  • 也许您可以在下面的
    get''下指示
    format:json
    来尝试“帮助”Grape,root::activities do

让我知道。

看起来您返回了一个未序列化的数组

  • 如果您只返回
    @活动
    ,您的
    索引是否有效?(只是为了确保问题来自序列化)
  • 也许您可以在下面的
    get''下指示
    format:json
    来尝试“帮助”Grape,root::activities do
让我知道

当每个_序列化程序是一个 项目数组

github中有一个关于此问题的问题。相关的

当每个_序列化程序是一个 项目数组


github中有一个关于此问题的问题。相关。

您的问题解决了吗?您的问题解决了吗?
{
    "backers": 1,
    "funded": 2,
    "campaign": {
        "id": 5,
        "min_funding_goal_units": 20,
        "product_name": "Another product",
        "product_description": "A product description",
    }
}