我试图在导航中的_header中插入头像。
当我尝试收到此错误时。
我收到此错误。
undefined method `avatar' for nil:NilClass
这与我的_header视图中的代码有关。
<%= image_tag @user.avatar.url(:large) %>
如何让头像显示?
答案 0 :(得分:1)
您的@user
变量为nil,只需在条件中包含此代码:
<% if @user.present? %>
<%= image_tag @user.avatar.url %>
<% end %>
答案 1 :(得分: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) %>
如果您使用devise进行登录,则可以在application_controller.rb中使用make helper方法调用<%= current_user.avatar.url(:large) %>
我希望它可以帮到你