我一直在一个简单的Rails应用程序中进行一些测试。
在我的控制器中,我分配了一个像这样的实例变量:
@user = User.last
这是严格的测试 - 我没有充分的理由以这种方式拉最后一个用户。
在我看来,我使用pluralize方法来报告用户数量。当然,因为我使用的是User.last
,所以只有一个。
在视图中,代码为<%= pluralize(@user.size, 'User') %>
。
运行时,应用程序会为size
抛出NoMethodError。
在这种情况下,您会认为大小会报告1,但由于某种原因,它不会报告。
我很好奇为什么?
答案 0 :(得分:1)
标题是虚假声明。 pluralize
只是一个帮手,无论你在哪里使用它都无关紧要。
在您的情况下,@ user是一条记录。它没有size
方法。确实如此。所以错误是预期的,没有错。