undefined method `map' for nil:NilClass on select_collection
Hi,
I have been struggling with this error for the last 3 hours and its s bit frustrating: Here is the scenario
I am trying to populate a select box with Team names that belong to a specific team leader here are my models and code
user.rb
belongs_to :team
  has_many  :attendances, dependent: :destroy
  belongs_to :team_leader, class_name: "User"
  has_many :agents, class_name: "User",
                    foreign_key: "team_leader_id"
team.rb
class Team < ActiveRecord::Base
  validates :team_code, :description, presence: true
  validates :team_code, uniqueness: true
  has_and_belongs_to_many :users
  has_many :attendance_sheets
end
attendance_sheet/new
<div class="field">
            <%= f.label :Team %><br>
            <%= f.collection_select(:team_id, @team, :id, :team_code) %>
          </div>
the other partial with the user, _attendance_fields.html.erb
<div class="nested-fields">
    <tr>
       <td><%= f.collection_select(:user_id, @users, :id, :name ) %></td>
       <td><%= f.check_box :present%></td>
       <td><%= f.select :reason, ["a","b"] %></td>
       <td><%= link_to_remove_association "Remove attendance", f, class: "form-button btn btn-default" %></td>
    </tr>
</div>
whenever i try to create an attendance sheet i the undefined method map error for both the partial and main form. I want to be able to see on teams that belong the user logged and also only the users belonging to the team/logged team_leader
I am not sure if my self join table is well done either
appreciated
Your first collection_select for @team, is that variable an array? Only arrays (or enumerable objects) have a map method. The map method is called internally inside the collection_select, so if that happens to be just a team record, then that could be the problem.
You'll either want to make that variable an array or adjust that accordingly to how you want it to work I think.
Hmm, well then it isn't as easy of a solution. ;) Which line of the view is it tripping on then? What's your stacktrace look like?
Started GET "/attendance_sheets/new" for 127.0.0.1 at 2015-12-11 18:03:36 +0300
Processing by AttendanceSheetsController#new as HTML
  Rendered attendance_sheets/_form.html.erb (3.3ms)
  Rendered attendance_sheets/new.html.erb within layouts/application (4.0ms)
Completed 500 Internal Server Error in 25ms (ActiveRecord: 0.0ms)
ActionView::Template::Error (undefined method `map' for nil:NilClass):
    16:           <% end %>
    17:           <div class="field">
    18:             <%= f.label :Team %><br>
    19:             <%= f.collection_select(:team_id, @team, :id, :team_code) %>
    20:           </div>
    21:           <div class="field">
    22:             <%= f.label :date %><br>
  app/views/attendance_sheets/_form.html.erb:19:in `block in _app_views_attendance_sheets__form_html_erb___3904306276885524695_69942133851520'
  app/views/attendance_sheets/_form.html.erb:5:in `_app_views_attendance_sheets__form_html_erb___3904306276885524695_69942133851520'
  app/views/attendance_sheets/new.html.erb:7:in `_app_views_attendance_sheets_new_html_erb__3506630663733362946_69942134392600'
will that help ?