사용자 프로필 페이지에 액세스 할 때마다이 오류가 발생합니다.NoMethodError in users # show
ActionView::Template::Error (undefined method `email' for nil:NilClass):
2: <tr>
3: <td class="main">
4: <h1>
5: <%= gravatar_for @user %>
6: <%= @user.name %>
7: </h1>
8: </td>
app/helpers/users_helper.rb:4:in `gravatar_for'
app/views/users/show.html.erb:5:in `_app_views_users_show_html_erb__222181804_33777120'
아래는 내 users.controller.rb 파일의 모양입니다.
def show
@user = User.find(params[:id])
@microposts = @user.microposts.paginate(:page => params[:page])
@title = @user.name
자세한 내용은 내 show.html.erb 파일 사본을 참조하십시오.
<table class="profile" summary="Profile information">
<tr>
<td class="main">
<h1>
<%= gravatar_for @user %>
<%= @user.name %>
</h1>
</td>
<td class="sidebar round">
<strong>Name</strong> <%= @user.name %><br />
<strong>URL</strong> <%= link_to user_path(@user), @user %>
</td>
</tr>
</table>
내 users_helper.rb 파일도 제공됩니다.
module UsersHelper
def gravatar_for(user, options = { :size => 50 })
gravatar_image_tag(user.email.downcase, :alt => h(user.name),
:class => 'gravatar',
:gravatar => options)
end
end
처럼 users_helper #의 gravatar_for 방법을 정의? –
분명히, 당신의'@ user'는'nil'입니다. –
Dave, 사용자가 있습니다. 새 사용자를 만들려고 시도했지만 여전히 동일한 오류가 발생합니다. 어떻게하면이 문제를 해결할 수 있을까요? – Michele