Rails 3中数组的Nil值

时间:2011-11-11 00:51:33

标签: ruby-on-rails ruby-on-rails-3 null

我觉得自己像个白痴一样,但是因为我是一个刚开发的人,而且我已经坐了一个小时做一些如此简单的工作,我需要问。

我想展示每个Widget,但我一直在努力:

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

我尝试使用<%= debug @widgets%>和<%= @ widgets.inspect%>,但我的命令提示符或浏览器中没有显示。

我试图在http://guides.rubyonrails.org/layouts_and_rendering.html

上复制每个do语句

在我的控制器中,名为Pages Controller,我有:

def widgets_to_show
  @widgets = Widget.all
end 

在我看来(页面#widgets_to_show),我有:

<% @widgets.each do |widget| %>
  <%= widget.title %>
<% end %>
  • 我有一个小部件模型
  • 我在小部件表中也有值
  • 我有一个标题字段,所以我不确定我做错了什么

我试图在使用High Voltage gem(https://github.com/thoughtbot/high_voltage)的页面上显示它,如果这有所不同。

1 个答案:

答案 0 :(得分:1)

正如@DaveNewton建议尝试从控制台(非irb)访问小部件。从终端执行以下操作

# from your rails project dir
$ rails c
$ w = Widgets.all
$ puts w
$ w.each { |n| puts n.title }

如果所有这些都有效,那么我们需要更多信息来确定问题所在。

修改

我的猜测是它与在同一页面上使用高压有关。它是创建静态页面的宝石,因此可能会干扰您显示您的小部件 - 因为您正在做的是动态