我一直在首页上看到一个错误
'nil:NilClass的'undefined method'company'
对于下面显示的以下代码的第一行。我不确定如何解决此问题。我有两个用于companies
和customers
的 Controllers ,因为我正在创建一个双向市场。
当用户单击顶部的徽标而不是重定向到欢迎页面时,由于主页是root_path,所以正在呈现登录页面,但是我正在使用dev {}来进行身份验证。
before_action
这是 home.html.erb 文件,其代码为root_path
<% if((current_user.company) || (current_user.customer)) %>
<%= render 'pages/welcome' %>
<% else %>
<% if current_user.is_company %>
<%= render 'companies/form', company: @company%>
<% else %>
这是我的 companiesController
<% if((current_user.company) || (current_user.customer)) %>
<%= render 'pages/welcome' %>
<% else %>
<% if current_user.is_company %>
<%= render 'companies/form', company: @company%>
<% else %>
<%= render 'customers/form', customer: @customer%>
<% end %>
<% end %>
答案 0 :(得分:1)
它只是说current_user
是nil
,您需要确保用户登录后才能使用current_user.company
答案 1 :(得分:0)
日志向您详细说明了公司返回零的原因。该公司需要其中的一个对象才能正确加载页面。但事实并非如此,因为没有用户登录,公司有返回对象。
<块引用><% if((current_user.company) || (current_user.customer)) %> <%= 呈现“页面/欢迎”%> <% else %>
<% if current_user.is_company %> <%= render 'companys/form', 公司:@company%> <% else %>
返回 nil,因为没有用户登录。
可以先检查是否有用户登录,然后再渲染 在此之前的一些东西,以防止错误页面
<% if(current_user) <% if((current_user.company) || (current_user.customer)) %> <%= 呈现“页面/欢迎”%> <% else %>
<% if current_user.is_company %> <%= render 'companys/form', company: @company%> <% end %> <% else %> 在这里渲染一些东西 <% end %>
或者只是登录以确保这不会返回 nil。但第一个修复是最理想的。