1

我有一个从表中选择组记录的查询。

@groups = Group.all

属性之一与id处理从控制器发送给它的 JSON 的前端框架不兼容。

我的问题是,在获得组列表后@groups,如何将每个属性的 id 更改为不同的名称,即group_id

我不会将它用于视图或其他任何东西,我只需要将键名更改idgroup_id.

例如,假设我运行@groups.first. 它应该返回...

=> #<Group id: 1, owner_id: 81, name: "my awesome group", updated_at: "2013-04-23 20:58:27", created_at: "2013-04-23 20:58:27">

当我将其格式化为 json 时,我有 key value id: 1。实际上我需要它group_id: 1

4

2 回答 2

3

as_json您可以在类的方法中覆盖名称Group

def as_json(*args)
    super.tap { |hash| hash["group_id"] = hash.delete "id" }
end

请参阅: Rails 如何在渲染 json 时更改属性名称?

于 2013-04-24T18:25:09.247 回答
1

您可以滥用 ActiveRecordselect方法:

@groups = Group.select("id AS group_id, owner_id, name,...")
于 2013-04-24T18:24:09.940 回答