# Saving attribute

**URL:** <https://www.ruby-forum.com/t/saving-attribute/134046>\
**Category:** Rails\
**Created:** [April 7, 2008, 10:21am UTC](https://www.ruby-forum.com/t/saving-attribute/134046 "2008-04-07T10:21:54Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 10:21am UTC](https://www.ruby-forum.com/t/saving-attribute/134046/1 "2008-04-07T10:21:54Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 10:51am UTC](https://www.ruby-forum.com/t/saving-attribute/134046/2 "2008-04-07T10:51:24Z")

</div>

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/](http://sensei.zenunit.com/)

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 5:39pm UTC](https://www.ruby-forum.com/t/saving-attribute/134046/3 "2008-04-07T17:39:36Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 6:20pm UTC](https://www.ruby-forum.com/t/saving-attribute/134046/4 "2008-04-07T18:20:12Z")

</div>

Am I not describing my problem correctly?

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 6:47pm UTC](https://www.ruby-forum.com/t/saving-attribute/134046/5 "2008-04-07T18:47:19Z")

</div>

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???

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 5:43pm UTC](https://www.ruby-forum.com/t/saving-attribute/134046/6 "2008-04-07T17:43:09Z")

</div>

def edit  
@game = Game.find(params[:id])  
@players = Player.find\_all\_by\_game\_id(params[:id])  
end

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 6:58pm UTC](https://www.ruby-forum.com/t/saving-attribute/134046/7 "2008-04-07T18:58:35Z")

</div>

On 7 Apr 2008, at 17:46, edberner wrote:

> 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

---

<div class="post-metadata">

**Author:** ![edberner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/e/f9ae1b/32.png) [@edberner](https://www.ruby-forum.com/u/edberner)\
**Post date:** [April 7, 2008, 7:03pm UTC](https://www.ruby-forum.com/t/saving-attribute/134046/8 "2008-04-07T19:03:15Z")

</div>

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

On Apr 7, 12:57 pm, Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
