# Extension - multiple checkboxes

**URL:** <https://www.ruby-forum.com/t/extension-multiple-checkboxes/158394>\
**Category:** Radiant CMS\
**Created:** [January 22, 2009, 9:41pm UTC](https://www.ruby-forum.com/t/extension-multiple-checkboxes/158394 "2009-01-22T21:41:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![littleknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9fc29f/32.png) [@littleknown](https://www.ruby-forum.com/u/littleknown)\
**Post date:** [January 22, 2009, 9:41pm UTC](https://www.ruby-forum.com/t/extension-multiple-checkboxes/158394/1 "2009-01-22T21:41:20Z")

</div>

Ok, I have two extensions for my first radiant project.

## Players

Name  
Biography

## Sports

Soccer  
Football  
Baseball  
Hockey

In Players—\>edit.html.erb

I want to generate a checkbox for each Sport (to assign players to  
multiple sports).

I have no idea how to do this, but I have everything else working.

---

<div class="post-metadata">

**Author:** ![littleknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9fc29f/32.png) [@littleknown](https://www.ruby-forum.com/u/littleknown)\
**Post date:** [January 22, 2009, 9:55pm UTC](https://www.ruby-forum.com/t/extension-multiple-checkboxes/158394/2 "2009-01-22T21:55:23Z")

</div>

Typically I’d do something like this inside the player editing form (in  
Haml):

- Sport.all.each do |sport|  
= check\_box\_tag ‘player[sport\_ids][]’, sport.id,  
player.sports.include?(sport), :id =\> “player\_sport\_ids\_#{sport.id}”  
%label{:for =\> “player\_sport\_ids\_#{sport.id}”}= sport.name

Sean

---

<div class="post-metadata">

**Author:** ![littleknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9fc29f/32.png) [@littleknown](https://www.ruby-forum.com/u/littleknown)\
**Post date:** [January 22, 2009, 10:38pm UTC](https://www.ruby-forum.com/t/extension-multiple-checkboxes/158394/3 "2009-01-22T22:38:31Z")

</div>

Sean C. wrote:

> Typically I’d do something like this inside the player editing form (in  
> Haml):
> 
> - Sport.all.each do |sport|  
> = check\_box\_tag ‘player[sport\_ids][]’, sport.id,  
> player.sports.include?(sport), :id =\> “player\_sport\_ids\_#{sport.id}”  
> %label{:for =\> “player\_sport\_ids\_#{sport.id}”}= sport.name
> 
> Sean

undefined method `sports’ for #\<Player:

(Sorry, I’m new to rails! )

I would need to add has\_and\_belongs\_to\_many :sports to Player.rb model,  
right?

---

<div class="post-metadata">

**Author:** ![littleknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9fc29f/32.png) [@littleknown](https://www.ruby-forum.com/u/littleknown)\
**Post date:** [January 22, 2009, 10:50pm UTC](https://www.ruby-forum.com/t/extension-multiple-checkboxes/158394/4 "2009-01-22T22:50:57Z")

</div>

Sean C. wrote:

> Typically I’d do something like this inside the player editing form (in  
> Haml):
> 
> - Sport.all.each do |sport|  
> = check\_box\_tag ‘player[sport\_ids][]’, sport.id,  
> player.sports.include?(sport), :id =\> “player\_sport\_ids\_#{sport.id}”  
> %label{:for =\> “player\_sport\_ids\_#{sport.id}”}= sport.name
> 
> Sean

Okay, got all of this figured out and everything looks good in the  
views.

I had to create a players\_sports table with player\_id and sport\_id  
columns and set has\_and\_belongs\_to\_many on player.rb model

The only problem is, it isn’t saving to the database on submit. Any tips  
for making it work?

If I make an update method in player\_controller, (which inherits  
abstractmodelcontroller), do i also have to make new, edit, remove, etc?

---

<div class="post-metadata">

**Author:** ![littleknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/9fc29f/32.png) [@littleknown](https://www.ruby-forum.com/u/littleknown)\
**Post date:** [January 23, 2009, 5:01pm UTC](https://www.ruby-forum.com/t/extension-multiple-checkboxes/158394/5 "2009-01-23T17:01:47Z")

</div>

I figured this out, thank you for the initial help.
