繁体   English   中英

Rails jbuilder 错误:ActionView::Template::Error(未定义的方法

[英]Rails jbuilder error: ActionView::Template::Error (undefined method

我有一个 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

如果我注释掉块内的两行,错误就会消失。 如果我删除其中一行并保留另一行,则会返回错误。 堆栈跟踪只是将我指向块的第一行。

这是怎么回事? 我该如何解决?

弄清楚了!

在 jbuilder 文件的较高位置,包含一个添加相同account密钥的部分。 这引起了某种名称冲突。

我通过使用我的重命名accountt临时测试偶然发现了这一点,突然它起作用了。 那时我才意识到是名称冲突导致了这个问题。 我没有看到它,因为它在不同的文件中并且错误消息令人困惑。 如果您的 jbuilder 文件很复杂并且您认为自己遇到了同样的问题,那么这是一种简单的测试方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM