0

在我们的 rails 3.2.12 应用程序中,存在两个变量(存储具有相同数据结构的表的子集)返回并需要组合以在索引视图中呈现的情况。我们以@project1 和@project2 为例。@project1 和@project2 都有从project表中检索到的数据子集。在渲染之前,需要做一些事情:

1. merge @project1 and @project2 into @project
2. get rid of duplicate record in @project. like @project.uniq
3. render @project as json

对于合并,我们可能可以做@project = @project1.to_json + @project2.to_json. 然后@project是一个json对象。

如何摆脱相同的记录@project?我们不知道该怎么做。

对于渲染@project,我们可以做render :json => @project in controller index (response_to do |format| format.json { render :json => @project })吗?我们可以在没有任何更改的情况下使用相同index.html.erbrenderjson吗@project(我们 在索引视图中helper method应用了一个)?each of @project

有人可以评论上述步骤(工作与否)并阐明如何摆脱 json 对象中的重复记录吗?

还有像@project = @project1 + @project2现有的解决方案吗?这可能是一种天马行空的想象。

谢谢您的帮助。

4

1 回答 1

1

将记录对象转换为散列,然后合并散列。

h1 = @project1.attributes;
h2 = @project2.attributes;
@project.attributes = h1.merge(h2);

补充:在下面的评论中进行了一些交流后找到了正确的答案。

@project = @project1.merge(@project2).uniq
于 2013-04-02T22:24:51.397 回答