ActionView::Template::Error(nil:NilClass 的未定义方法“each”):?
ActionView::Template::Error (undefined method `each' for nil:NilClass):?
我在 ruby 项目的 ruby 中有一个服务模型,但我无法在页面中呈现它#home view of my project 我得到这个 [=27= nil:NilClass 的未定义方法 `each' 虽然我已经在我的 Servicecontroller-
中定义了变量
我的 ServicesController 文件-
class ServicesController < ApplicationController
def show
@services = Service.all
end
end
我的节目文件-
<div class="container">
<h3>Services we offer-</h3>
<% @services.each do |service| %>
<h5><%= service.name %></h5>
<p><%= service.description %></p>
<% end %>
</div>
我的服务视图显示文件的路径是这个- app\views\services\_show.html.erb
我在我的页面视图 app\views\pages\home.html.erb
中将它呈现为 <%= render 'services/show' %>
,我仍然得到尽管我能够使用@services=Service.all 命令在rails 控制台中看到所有服务,但还是出现了错误。
有人可以帮我吗?
您在错误的控制器和操作中设置了变量。
如果您希望 @services
实例变量在 home.html.erb
视图中可用,您需要在 PagesController#home
.
中设置该数据
如果您在正确的操作中设置变量,然后在 home
视图中渲染部分内容,无论是 _show
还是其他视图,您都可以访问该变量。
试试这样的:
class PagesController < ApplicationController
...
def home
@services = Service.all
end
end
我在 ruby 项目的 ruby 中有一个服务模型,但我无法在页面中呈现它#home view of my project 我得到这个 [=27= nil:NilClass 的未定义方法 `each' 虽然我已经在我的 Servicecontroller-
中定义了变量我的 ServicesController 文件-
class ServicesController < ApplicationController
def show
@services = Service.all
end
end
我的节目文件-
<div class="container">
<h3>Services we offer-</h3>
<% @services.each do |service| %>
<h5><%= service.name %></h5>
<p><%= service.description %></p>
<% end %>
</div>
我的服务视图显示文件的路径是这个- app\views\services\_show.html.erb
我在我的页面视图 app\views\pages\home.html.erb
中将它呈现为 <%= render 'services/show' %>
,我仍然得到尽管我能够使用@services=Service.all 命令在rails 控制台中看到所有服务,但还是出现了错误。
有人可以帮我吗?
您在错误的控制器和操作中设置了变量。
如果您希望 @services
实例变量在 home.html.erb
视图中可用,您需要在 PagesController#home
.
如果您在正确的操作中设置变量,然后在 home
视图中渲染部分内容,无论是 _show
还是其他视图,您都可以访问该变量。
试试这样的:
class PagesController < ApplicationController
...
def home
@services = Service.all
end
end