Ruby on Rails - Pages#home中的NoMethodError

时间:2016-11-01 15:43:24

标签: ruby-on-rails notepad++ nomethoderror

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

<% 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

1 个答案:

答案 0 :(得分:1)

假设这不是拼写错误

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

你需要在零结尾处加上问号

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