我觉得自己像个白痴一样,但是因为我是一个刚开发的人,而且我已经坐了一个小时做一些如此简单的工作,我需要问。
我想展示每个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)的页面上显示它,如果这有所不同。
答案 0 :(得分:1)
正如@DaveNewton建议尝试从控制台(非irb)访问小部件。从终端执行以下操作
# from your rails project dir
$ rails c
$ w = Widgets.all
$ puts w
$ w.each { |n| puts n.title }
如果所有这些都有效,那么我们需要更多信息来确定问题所在。
修改强>
我的猜测是它与在同一页面上使用高压有关。它是创建静态页面的宝石,因此可能会干扰您显示您的小部件 - 因为您正在做的是动态。