Ruby on rails 使用“部分给予”来呈现集合;nil的未定义方法:NilClass“;

Ruby on rails 使用“部分给予”来呈现集合;nil的未定义方法:NilClass“;,ruby-on-rails,Ruby On Rails,我试图使用项目部分渲染项目的集合,但出现以下错误: undefined method `customer' for nil:NilClass Extracted source (around line #1): 1: <p><%= company_name(@project) %><p> 因此,我的索引检查他们的项目是否从以下项目开始: <% if @projects.any? %> <%= render :partial =>

我试图使用项目部分渲染
项目的集合,但出现以下错误:

undefined method `customer' for nil:NilClass
Extracted source (around line #1):
1: <p><%= company_name(@project) %><p>
因此,我的索引检查他们的项目是否从以下项目开始:

<% if @projects.any? %>
  <%= render :partial => "projects/summary", :collection => @projects %>
<% end %>
如果我通过rails控制台执行以下操作,它可以正常工作:

projects.first.customer.business_name.blank?

我真的很困惑,因为我认为渲染一个集合应该这么做。任何帮助都将不胜感激。

您应该将您的偏好更改为

<p><%= company_name(project) %><p>
<p><%= summary_description(project) %><p>



请参见“渲染集合”下的“关于此”部分。您应该将您的部分设置更改为

<p><%= company_name(project) %><p>
<p><%= summary_description(project) %><p>



请参阅“渲染集合”下的“关于此”部分。我发现了问题所在

这是因为我使用了一个与我试图渲染的模型不同的命名部分。我只需要呈现模型的摘要,所以我使用了部分摘要。但是,在部分示例中,我的项目变量的“name”是“summary”。因此,我将我的偏好改为:

<p><%= company_name(summary) %><p>
<p><%= summary_description(summary) %><p>


它成功了。Rails对于我来说仍然是一个谜。在post中,答案是使用::as=>:foo

<%= render :partial => "projects/summary", :collection => @projects, :as => :project %>
“项目/摘要”,:collection=>@projects,:as=>:project%>

我找到了问题所在

这是因为我使用了一个与我试图渲染的模型不同的命名部分。我只需要呈现模型的摘要,所以我使用了部分摘要。但是,在部分示例中,我的项目变量的“name”是“summary”。因此,我将我的偏好改为:

<p><%= company_name(summary) %><p>
<p><%= summary_description(summary) %><p>


它成功了。Rails对于我来说仍然是一个谜。在post中,答案是使用::as=>:foo

<%= render :partial => "projects/summary", :collection => @projects, :as => :project %>
“项目/摘要”,:collection=>@projects,:as=>:project%>

我从文档中看到了你在说什么。我现在从同一行中得到了
未定义的局部变量或方法“project”
,虽然我从文档中看到了您所说的。我现在从同一行中得到了
未定义的局部变量或方法“project”