2015-09-20 4 views
0

Im пытается вставить изображение аватара в мое _header в навигации.Root Page - undefined method `avatar 'для nil: NilClass

Когда я пытаюсь получить эту ошибку.

Получаю эту ошибку.

undefined method `avatar' for nil:NilClass 

Это отношение к этому коду в моем представлении.

<%= image_tag @user.avatar.url(:large) %> 

Как получить аватар для показа?

+0

Это выглядит как ваш @user равен нулю. – akbarbin

+0

@MuhamadAkbarBinWidayat Да, это то, что я думал. Я знаю, как сделать так, чтобы он не выглядел небрежно. Но в заголовке я не знаю, как? – joeyk16

+0

Я вижу. Вы используете приложение для своих приложений? вы можете позвонить current_user.avatar.url (: large) – akbarbin

ответ

1

на основе вашей проблемы, это так, как вы можете это исправить:

контроллер/application_controller.rb

class ApplicationController < ActionController::Base 
    helper_method :current_user #make this method available in views 

    def current_user 
    # Use find_by_id to get nil instead of an error if user doesn't exist 
    # you can change the session param based on your params 
    @current_user ||= session[:current_user_id] && User.find_by_id(session[:current_user_id]) 
    end 
end 

В View, вы просто звоните:

<%= current_user.avatar.url(:large) %> 

Если вы используете изобрести для входа в систему, вы можете позвонить <%= current_user.avatar.url(:large) %> без макияжа вспомогательный метод в вас application_controller.rb

Я надеюсь, что это может помочь вам

1

Ваш @user переменная равна нулю, просто обернуть этот код с условиями:

<% if @user.present? %> 
    <%= image_tag @user.avatar.url %> 
<% end %> 
Смежные вопросы