I’m trying to generate rows in a HTML table in my view (see below) but:
zone[loc.to_sym]
… seems to be nil as I keep getting the error :
undefined method `each’ for nil:NilClass for this line
gvim
************* Controller ********************
class MainController < ApplicationController
def home
@locations = %w(Africa America Arctic Asia Atlantic Australia
Europe Brazil Canada Chile Indian Mexico Pacific US Misc)
end
****************** View *********************
<% zones = {
US: { ‘US/Alaska’ => ‘Alaska’, ‘US/Aleutian’ => ‘Aleutian’, ‘US/Arizona’
=> ‘Arizona’, ‘US/Central’ => ‘Central’, ‘US/East-Indiana’ => ‘East
Indiana’, ‘US/Eastern’ => ‘Eastern’, ‘US/Hawaii’ => ‘Hawaii’,
‘US/Indiana-Starke’ => ‘Indiana Starke’, ‘US/Michigan’ => ‘Michigan’,
‘US/Mountain’ => ‘Mountain’, ‘US/Pacific’ => ‘Pacific’, ‘US/Pacific-New’
=> ‘Pacific New’, ‘US/Samoa’ => ‘Samoa’ },
Miscellaneous: { Cuba:‘Cuba’, Egypt:‘Egypt’, Eire:‘Eire’,
Greenwich:‘Greenwich’, Hongkong:‘Hongkong’, Iceland:‘Iceland’,
Iran:‘Iran’, Israel:‘Israel’, Jamaica:‘Jamaica’, Japan:‘Japan’,
Kwajalein:‘Kwajalein’, Libya:‘Libya’, Navajo:‘Navajo’, Poland:‘Poland’,
Portugal:‘Portugal’, Singapore:‘Singapore’, Turkey:‘Turkey’, Zulu:‘Zulu’
}
… …
} %>
<% @locations.each do |loc| %>
<tr>
<td align="right"> </td>
<td><select name="<%= loc %>1">
<option value="" selected="selected"><%= loc %></option>
<% zones[loc.to_sym].each do |key, val| %>
<option value="<%= key %>"><%= val %></option>
<% end %>
</select>
</td>
<td align="right"> </td><td></td>
</tr>
<% end %>