0

如果我收到此错误

undefined method impressionist_count' for nil:NilClass在尝试在 _user.html.erb 中使用这一行之后

<%= @user.impressionist_count+@user.microposts.sum(&:impressionist_count) %>

需要在哪里定义?我已经在 user.rb 中有这个

def impressionist_count
    impressions.size
  end

我在各种助手中尝试过,但无济于事

4

2 回答 2

1

当您“渲染@users”时,每个用户都可以作为局部变量“user”访问。您的部分应如下所示:

<%= user.impressionist_count+user.microposts.sum(&:impressionist_count) %>
于 2013-04-18T04:06:01.650 回答
0

方法已定义,但@user对象未定义。这应该已经在控制器中分配,以便它在您的视图中工作,或者在您渲染它时应该已经为您的部分提供了一个对象。

也许你有类似的东西:

<%= render(:partial => 'user') %>

如果您有一个user变量,您可能需要的是:

<%= render(:partial => 'user', :object => user) %>

包括短语“ for nil”在内的错误表明未正确使用未定义的值。

于 2013-04-18T03:04:38.130 回答