class StoreController < ApplicationController
def index
@array = [1, 2, 3]
end
end
index.html.erb
-------------
render(:partial => "test", :object => @array)
_test.html.erb
------------
<% for num in test %>
<div><%= num %></div>
<% end %>
When I enter the url:
http://localhost:3000/store
in my browser, this is the output:
---------
NoMethodError in Store#index
Showing app/views/store/_test.html.erb where line #1 raised:
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
Extracted source (around line #1):
1: <% for num in test %>
2: <div><%= num %></div>
3: <% end %>
-------------------------
The error is saying that test is nil. A ruby program:
array = [1, 2, 3]
for num in array
puts num
end
--output:--
1
2
3
My understanding was that when you write:
render(:partial => "test", :object => @array)
then inside the file _test.html.erb a local variable called test is
assigned the object @array. But in my application, @array is not
nil--it was assigned the array [1, 2, 3] in the controller. Why won't
rails relent and loop through the array like I am commanding it to do?
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---