Hello, I am new to Rails and I'm building an API.

I have 2 objects:
Team: name, leader (user object, person who manages the team), users (array of user objects for people in the team (not including the leader))
User: id, name, email, typical fields

Currently my front end sends back a team object as name, users (array of user ids), leader (user id).

My Create and Update look like this for team:
Code Ruby:
  def update
    @team = Team.find(params[:id])
 
    if @team.update_attributes!(accepted_params)
      render json: @team
    else
      render json: @team.errors, status: :unprocessable_entity
    end
  end

My Team model looks like this:
Code Ruby:
class Team
  include Mongoid::Document
  include Mongoid::Timestamps::Created
  include Mongoid::Timestamps::Updated
 
  # standard
  field :name
  # relationships
  has_one :leader, class_name: 'User'
  has_many :users, inverse_of: :team
 
  # define the users based on an array of people with the team id
  def users=(user_ids)
    self.users.clear
    user_ids.each do |id|
      User.find(id).update_attribute :team_id, self.id
    end
    self.users
  end
end

My User model looks like this:
Code Ruby:
class User
  include Mongoid::Document
  include Mongoid::Timestamps::Created
  include Mongoid::Timestamps::Updated
 
  field :name
  ## Database authenticatable
  field :email,              :type => String, :default => ""
 
  # users belong to a team
  belongs_to :team, inverse_of: :user
 
end

I have a team serialiser like this:
Code Ruby:
class TeamSerializer < ActiveModel::Serializer
  attributes :_id, :name
  has_many :users
  has_one :leader
end

The problem I have is that when I save the team (or create it), the leader object never gets saved, it seems to default leader to the first item in the users array.

Can anyone help me get the relationships right? Many thanks for any assistance.