【问题标题】:Nesting JSON from ActiveRecord从 ActiveRecord 嵌套 JSON
【发布时间】:2013-11-27 16:45:52
【问题描述】:

我有以下类层次结构:

class User < ActiveRecord::Base
  has_many :projects
end

class Project < ActiveRecord::Base
  belongs_to :user
  has_many :project_personas
  has_many :personas, through: :project_personas
end

class ProjectPersona < ActiveRecord::Base
  belongs_to :project
  belongs_to :persona
end

class Persona < ActiveRecord::Base
end

我正在尝试以 JSON 格式获取用户:

render json: @user.to_json(
  include: {
    projects: {
      include: :personas
    }
  })

什么实际上不起作用。有效的是:

render json: @user.to_json(
    include: {
        projects: {
            include: {
                project_personas: {
                    include: :persona
                }
            }
        }
    })

但我不想拥有这个project_personas 级别。 我该怎么办?

【问题讨论】:

    标签: ruby-on-rails json activerecord


    【解决方案1】:

    我想我理解你的问题,但你介意提供更多信息吗?

    你想要json中的对象及其关系?

    @user = User.where(:persona => 'foo') @user.to_json

    【讨论】:

    • 是的,而是User.where(:guid =&gt; '12-2-12') 并得到结果User { projects : { personas : { persona1, ...} } }
    • 当您查询该对象时,它会在控制台或浏览器中呈现什么?
    【解决方案2】:

    哦,这个问题是微不足道的。我只需要include 个项目。所以

    User.includes(projects: :personas).find_by(guid: '...')
    

    然后我得到了包含角色的项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 2014-09-05
      相关资源
      最近更新 更多