Ruby Rails - Pages#home 中的 NoMethodError

Ruby on Rails - NoMethodError in Pages#home

我是 rails 的新手,正在尝试向网页添加登录功能。我遵循了一位讲师给我的一个例子,但它仍然会导致错误。错误出现在 notepad++ 布局中的 application.html.erb 页面(基本上包含网站上其他页面的链接,它们在主页上)。这可能是一个非常模糊的问题,但也许对 ruby 有更好理解的人可能会指出正确的方向。

<% if !signed_in? %> **(This line is highlighted red)**
       <li><%=link_to "Sign In", login_path %></li>
        <% else %>
       <li>Signed in as <%= @current_candidate.name%></li>
       <li><%= link_to "Sign Out", logout_path%></li>

 app/helpers/application_helper.rb:3:in `signed_in?'
 app/views/layouts/application.html.erb:29:in `_app_views_layouts_application_html_erb___772860813_51372912'

* 应用助手 *

   module ApplicationHelper   
   def signed_in?
   if session[:candidate_id].nil  
    return  
   else      
   @current_candidate = Candidate.find_by_id(session[:candidate_id]) 
  end
  end
 end

假设这不是拼写错误

if session[:candidate_id].nil  
  return  
else      
 @current_candidate = Candidate.find_by_id(session[:candidate_id]) 
end

你需要在 nil 的末尾加一个问号

if session[:candidate_id].nil?
  return  
else      
  @current_candidate = Candidate.find_by_id(session[:candidate_id]) 
end