gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:50:21 25 4
gpt4 key购买 nike

例如,我有一条路线

POST /interaction.json

客户端发布新交互的地方。通常我的 Controller 看起来像
class InteractionController < ApplicationController

def create
respond_with @log
end

end

我会得到一个 json 响应
{ "log" : { "id" : 20, .... } }

并将位置 header 设置为
http://foo.com/log/20

但是,如果我希望在我的 :json 响应中返回更多对象,而不仅仅是 @log。例如,通知客户端关于此交互的某些事情发生了变化,这是正常的。也许用户因为进行这种交互而获得了奖品。能够做到这一点会很好
response_with @log, @prize

并得到回应
{ "log": { "id": 20, ... },
"prize": { "id": 50, ...}
}

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

最佳答案

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

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

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

关于ruby-on-rails-3.1 - 如何在 Rails 3.1 中响应多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7483167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com