Saving attribute

Something is getting lost here.
def create
    @home = Team.find_by_user_id(current_user.id)

    for player in @home.players
      player.update_attribute(:game_id, @game.id)
    end
end

def show
  @players = Player.find_all_by_game_id(params[:id])
end

view
<%= @players.size %> # mistakenly equals zero

Played with the console and everything should be working fine...

You don't seem to be setting @game in your create method.

It'd help if you told us what your error was.

Julian.

Learn Ruby on Rails! Check out the FREE VIDS (for a limited time)
VIDEO #3 out TODAY!
http://sensei.zenunit.com/

def create
    @game = Game.new(params[:game])
    @game.opponent = params[:team][:name]

    @home = Team.find_by_user_id(current_user.id)
    @opponent = Team.find_by_name(params[:team][:name])

    for player in @home.players
      player.update_attribute(:game_id, @game.id)
    end

      if @game.save
        flash[:notice] = 'Game was successfully created.'

        redirect_to
edit_school_team_game_url(School.find_by_user_id(current_user.id),
@home, @game)
      else
        render :action => "new"
      end

  end

is my whole create method
the error is that the game_id is never actually changed for any of the
players. it remains nil

def edit
    @game = Game.find(params[:id])
    @players = Player.find_all_by_game_id(params[:id])
  end

Am I not describing my problem correctly?

i'm absolutely perplexed...
Player Update (0.000416) UPDATE players SET "created_at" =
'2008-04-07 12:35:45', "school_id" = 2, "team_id" = 2, "first" = 'w',
"updated_at" = '2008-04-07 12:43:38', "game_id" = NULL, "last" = 'o'
WHERE "id" = 4

Why is it not setting game_id???

i'm absolutely perplexed...
Player Update (0.000416) UPDATE players SET "created_at" =
'2008-04-07 12:35:45', "school_id" = 2, "team_id" = 2, "first" = 'w',
"updated_at" = '2008-04-07 12:43:38', "game_id" = NULL, "last" = 'o'
WHERE "id" = 4

Why is it not setting game_id???

The game hasn't been saved and so it doesn't have an id.

Fred

You're a genius thank you for finding my silly mistake.