当前位置:  开发笔记 > 编程语言 > 正文

Ruby和Nil对象

如何解决《Ruby和Nil对象》经验,为你挑选了1个好方法。

我正在Ruby on Rails中开发一个webapp(很好的尝试).

我的index.html.erb中有一个部分渲染

<%= render :partial => "houses/index", :locals => @houses %>

当用户点击我的域的根时加载index.html.erb.这部分导致此错误:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each

第8行提取的来源

5:     Washrooms
6:   
7: 
8: <% @houses.each do |house| %>
9:   
10:     <%=h house.short_desc %>
11:     <%=h house.bedrooms %>

模板包含的跟踪:app/views/home/index.html.erb

我想在我的主页上显示5个房子(index.html.erb)

为了让这个工作,我错过了什么?

非常感谢

编辑:

Houses_controller

Home #index中的NoMethodError

显示第10行引发的app/views/houses/_index.html.erb:

当你没想到它时,你有一个零对象!您可能期望一个Array实例.评估nil.each时发生错误

提取的来源(第10行):

7:洗手间8:9:10:<%@ houses.each do | house | %> 11:12:<%= h house.short_desc%> 13:<%= h house.bedrooms%>

模板包含的跟踪:app/views/home/index.html.erb



1> Chuck..:

值:locals应该是一个定义局部变量的Hash.所以

<%= render :partial => "houses/index", :locals => {:houses => @houses} %>

然后

<% houses.each do |house| %>

重申一下,因为您发布的新错误表明您仍然没有正确执行此操作:

如果你要通过它:locals,你想要的houses.each,而不是**@**houses.each.没有蜗牛.局部变量没有@前缀; 实例变量.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有