我有一个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
如果我注解掉代码块中的两行,错误就会消失;如果我删除其中一行而保留另一行,错误就会返回;堆栈跟踪只会指向代码块的第一行。
怎么回事?我该怎么补救?
1条答案
按热度按时间x7yiwoj41#
想明白了!
在jbuilder文件的更高位置,包含了一个添加了 same
account
键的partial,这导致了某种名称冲突。我偶然发现了这个问题,我临时将密钥重命名为
accountt
进行测试,突然它工作了。这时我意识到是名称冲突导致了这个问题。我没有看到它,因为它在不同的文件中,错误消息令人困惑。如果您的jbuilder文件很复杂,您认为您遇到了同样的问题,这是一个简单的测试方法。