Múltiples atributos en un artículo (has_and_belongs_to_man

Me explico. Tengo una tabla de artículos y otra de colores,
evidentemente la relación es n a m, por lo tanto he creado otra tabla
que se llama relaciones donde guardo id, articulo_id, color_id y en el
modelo utilizo has_and_belongs_to_many. La teoria my bien, pero en la
práctica, cuando quiero crear el _form.rhtml, pongo un select de todos
los artículos, y mi idea era poner al lado del select una lista con
todos los colores disponibles y un checkbox al lado, de manera que con
el select seleccionas el articulo, y vas marcando el checkbox de los
colores que le quieres asociar. El código que tengo en el _form es este

Article
<%= select 'relation', 'article_id', Article.find_all.collect {|a| [ a.name, a.id ] } %>

<% colors = Colour.find(:all) %> <% for colour in colors%>

<%= check_box (:relation, :colour_id,{}, colour.id, "0") %>  <%= colour.name%>

<%end%>

La pregunta del millón es: ¿cómo guarda esto? Creo que hay algo mal en
el form, ya que todos los checkxbox tienen el mismo nombre, mi intención
es que el nombre del checkbox sea el id del color, y luego en el
controlador hacer un for para cada color y guardar la relación.

Espero haberme explicado.

¿Alguien lo ha echo antes o tiene alguna idea?