gpt4 book ai didi

ruby-on-rails - Rails 3 respond_with json 问题

转载 作者:行者123 更新时间:2023-12-04 06:03:38 25 4
gpt4 key购买 nike

生成一些 json 时遇到问题。我正在尝试渲染像这样的 json 的单个事件记录结果:

@data = User.find(1)
respond_with(@data, :include => :status)

json结果为:

{
-user: {
address: null
email: "test@email.com"
first_name: "Test"
last_name: "Man"
status_id: 1
username: "testguy"
status: { }
}
}

那么问题是什么?问题是 :include=>:status 似乎不要带来关系。在我的用户模型中,我有一个属于:状态。我如何让它在单个结果集上工作?

当我这样做时:

@data = User.where("id = 1")
respond_with(@data, :include => :status)

关系以这种方式很好地显示在 json 结果集中。但它的在我不想要的对象数组中。

有什么想法吗?

最佳答案

我假设您要包含的 status 不是 http 状态代码之一(200、201 等),也不是以任何方式与 User 对象关联的对象,而是您自己的变量。

使用 Rails 3.0.10 和 Ruby 1.9.2,您可能会发现这两种解决方案中的一种适合您。而不是 respond_with使用 render如下。

解决方案一

render :json => {:data => @data, :status => "whatever"}

json结果为:

{
data:
{
user:
{
address: null
email: "test@email.com"
first_name: "Test"
last_name: "Man"
status_id: 1
username: "testguy"
}
}
status: "whatever"
}

方案二

render :json => {:user => {:address => @data.address, :email => @data.email, ..., :status => "whatever"}}

json结果为:

{
user:
{
address: null
email: "test@email.com"
...
status: "whatever"
}
}

我希望这就是您要找的。

关于ruby-on-rails - Rails 3 respond_with json 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959631/

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