嵌套包括使用#as_json失败

时间:2011-11-26 00:41:57

标签: ruby-on-rails ruby-on-rails-3

我使用#as_json方法遇到了一些问题。

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

我收到undefined method macrofor nil:NilClass错误。

如果我删除了最后一个include [:urls]部分a.k.a此代码;

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

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

根据我的研究,给定的错误是由关联问题引起的。 在我的情况下,看起来艺术家模型与url模型没有关联,这是不正确的。 正常运行Artist.first.urls

任何人都可以找出问题所在吗?

我正在使用Rails 3.1.1。

1 个答案:

答案 0 :(得分:0)

看起来它是Rails 3.1中的一个错误。 我提出错误的第一个例子在〜>中工作。 3.2