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 rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---