I feel like a moron asking this, but since I’m a new to developing, and I’ve been sitting here for an hour making something so simple work, I need to ask.
I want to show each Widget, but I keeping getting:
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
I tried using <%= debug @widgets %> and <%= @widgets.inspect %>, but nothing shows in my command prompt or browser.
I was trying to copy the each do statement on http://guides.rubyonrails.org/layouts_and_rendering.html
In my controller, called Pages Controller, I have:
def widgets_to_show
@widgets = Widget.all
end
In my view (pages#widgets_to_show), I have:
<% @widgets.each do |widget| %>
<%= widget.title %>
<% end %>
- I have a widget model
- I also have values in the widgets table
- and I have a title field, so I’m not sure what I’m doing wrong
I’m trying to display it on a page that uses the High Voltage gem (https://github.com/thoughtbot/high_voltage) if that makes a difference.
As @DaveNewton suggested try accessing the widget from your console (not irb). Do the following from your terminal
If all of that works then we need more info to figure out what the problem is.
Edit:
My guess is that it has something to do with using high voltage on the same page. It’s a gem for creating static pages so maybe that’s interfering with showing your widgets – since what you’re doing is something dynamic.