nil:NilClass的未定义方法“ company”

时间:2018-07-21 00:30:33

标签: javascript html css ruby-on-rails ruby

我一直在首页上看到一个错误

  

'nil:NilClass的'undefined method'company'

对于下面显示的以下代码的第一行。我不确定如何解决此问题。我有两个用于companiescustomers 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 %>

2 个答案:

答案 0 :(得分:1)

它只是说current_usernil,您需要确保用户登录后才能使用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。但第一个修复是最理想的。