加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3.1 – 如何在Rails 3.1中响应多个对象

发布时间:2020-12-17 03:53:05 所属栏目:百科 来源:网络整理
导读:我有一条路线,例如 POST /interaction.json 客户发布新交互的位置.通常我的控制器看起来像 class InteractionController ApplicationController def create respond_with @log endend 我会得到一个json回复 { "log" : { "id" : 20,.... } } 并且位置标头设置
我有一条路线,例如

POST /interaction.json

客户发布新交互的位置.通常我的控制器看起来像

class InteractionController < ApplicationController

    def create
        respond_with @log
    end

end

我会得到一个json回复

{ "log" : { "id" : 20,.... } }

并且位置标头设置为

http://foo.com/log/20

但是,如果我希望在我的:json响应中返回更多对象,而不仅仅是@log.例如,通知客户端某些事情已发生变化,这与正常的交互相关.也许用户赢得了进行这种互动的奖励.能够这样做会很高兴

response_with @log,@prize

并得到回应

{ "log": { "id": 20,... },"prize": { "id": 50,...}
}

但这不是response_with的工作方式.它将@prize视为@log的嵌套资源.任何人都可以提出这个想法吗?

解决方法

合并两个独立对象是危险的,并将覆盖调用者中的任何现有属性.

相反,您可以始终包装对象并使用包装器进行响应:

@response = {:log => @log,:price => @price}
respond_with @response

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读