2013-04-18 86 views
0

正從「_user.html.erb」一個未定義的方法錯誤。如果我想使用_user.html.erb在Rails 3中

<%= @[email protected](&:impressionist_count) %> 

其中內這條線後收到此錯誤

undefined method impressionist_count' for nil:NilClass它是否需要定義?我已經有這裏面user.rb

def impressionist_count 
    impressions.size 
    end 

我嘗試了各種幫手,但無濟於事

回答

1

當你「渲染@users」時,每個用戶都可以訪問局部變量「user」。你的部分應該看起來像:

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

定義的方法,但@user對象不是。這應該已經在控制器中分配,以便它在視圖中工作,或者當您呈現它時應該已經爲您的部分提供了一個對象。

也許你有這樣的:

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

什麼,你可能需要的是這個,如果你有一個user變量:

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

錯誤,其中包括短語「for nil」是一個未定義的指示值被錯誤地使用。

+0

這就是我在users \ index.html.erb('<%= render @users%>')。在用戶控制器的索引函數裏面,我試着把'@user = User.find(params [:id])',但我現在變得不能找到沒有ID的用戶 – nextstep 2013-04-18 03:27:40

+0

什麼是@users '定義爲?不要忘記'index'沒有得到':id'參數。 – tadman 2013-04-18 03:46:17

+0

這是@users裏面的索引:'@users = User.paginate(page:params [:page])。'全部' – nextstep 2013-04-18 03:50:31