ruby-on-rails Rails jbuilder错误:ActionView::模板::错误(未定义的方法

qpgpyjmq  于 2023-01-14  发布在  Ruby
关注(0)|答案(1)|浏览(188)

我有一个Rails 6应用程序,我们使用jbuilder来定义JSON响应的形状。
最近,我开始收到以下错误:

ActionView::Template::Error (undefined method `empty?' for #<Account:0x0000000116743030>):

堆栈跟踪指向jbuilder文件中的以下代码块:

json.account do
  json.call(@account, *Account::APP_FIELDS)
  json.logo_url @account.logo
end

如果我注解掉代码块中的两行,错误就会消失;如果我删除其中一行而保留另一行,错误就会返回;堆栈跟踪只会指向代码块的第一行。
怎么回事?我该怎么补救?

x7yiwoj4

x7yiwoj41#

想明白了!
在jbuilder文件的更高位置,包含了一个添加了 sameaccount键的partial,这导致了某种名称冲突。
我偶然发现了这个问题,我临时将密钥重命名为accountt进行测试,突然它工作了。这时我意识到是名称冲突导致了这个问题。我没有看到它,因为它在不同的文件中,错误消息令人困惑。如果您的jbuilder文件很复杂,您认为您遇到了同样的问题,这是一个简单的测试方法。

相关问题