【问题标题】:rails rabl multiple collectionsrails rabl 多个集合
【发布时间】:2013-11-08 13:20:42
【问题描述】:

rabl 有点麻烦。这段代码

collection favourite_groups, root: :groups

extends 'favourites/base'

给我以下 json 结构:{ groups: [ {..}, {..} ] }。我需要的是附加另一个包含数组的节点 - { groups: [ {..}, {..} ], users: [ {..}, {..} ] } 数据在单独的变量中,但它可以在一个变量中,这使得这项工作得以实现。

想法?

【问题讨论】:

    标签: ruby-on-rails json collections rabl


    【解决方案1】:

    好吧,没关系,让它与这个一起工作

    object false
    
    child favourite_groups => :groups do
      collection favourite_groups
      extends 'favourites/base'
    end
    
    child favourite_users => :users do
      collection favourite_users
      extends 'favourites/base'
    end
    

    【讨论】:

      【解决方案2】:

      也许对 anwser 来说太晚了 我确实尝试了你的语法,但对我不起作用: 我认为如果你附加一个没有记录的孩子,这会使 rabl 引擎感到困惑,因为它正在寻找根对象的后代 我确实替换了一个节点元素和一个部分元素,它可以工作

      object false # ok, no record
      
      node :favourite_groups => :groups do
         partial('favourites.json.rabl', :object => @favourite_groups) 
      end
      
      node :favourite_users => :users do
        partial('favourites.json.rabl', :object => @favourite_users)
      end
      

      有一个解释节点和孩子有什么区别Github rabl Tips and tricks

      希望有帮助

      【讨论】:

      • 在这种情况下,您确实呈现了一个对象。当我需要一个数组时。在您的情况下,我认为以下应该有效child :favourite_users => :users { |users| extends 'users/base' } 它确实取决于您的用例。据我了解child 节点更改local[:object]。方法attributes 现在与“子”对象相关。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多