2011-11-26 121 views
0

我遇到了一些使用#as_json方法的代碼問題。嵌套包括使用#as_json失敗

render json: channel.as_json({ 
    include: { 
     gigs: { 
      include: { 
       song: { 
        include: [ 
         :urls, 
         { 
          artist: { 
           include: [ 
            :urls 
           ] 
          } 
         } 
        ] 
       } 
      } 
     } 
    } 
}) 

我收到了undefined method macrofor nil:NilClass錯誤。

如果我在最後a.k.a這段代碼中刪除了include [:urls]部分;

render json: channel.as_json({ 
    include: { 
     gigs: { 
      include: { 
       song: { 
        include: [:urls, :artist] 
       } 
      } 
     } 
    } 
}) 

......一切都很完美。

根據我的研究,給定的錯誤是由關聯問題引起的。 就我而言,它看起來像藝術家模型沒有與url模型相關聯,這是不正確的。 跑步Artist.first.urls工作正常。

任何人都可以找出問題的原因嗎?

我正在使用Rails 3.1.1。

回答

0

看起來這是Rails 3.1中的一個bug。 我的第一個例子提出了一個錯誤〜> 3.2