Agregar registro a una relación has_and_belongs_to_many

Tengo dos modelos, usuarios y promociones. La idea es que una promoción puede tener muchos usuarios, y un usuario puede tener muchas promociones.

class User < ActiveRecord::Base
  has_and_belongs_to_many :promotions
end

class Promotion < ActiveRecord::Base
  has_and_belongs_to_many :users
end

También tengo una tabla / modelo promotions_users, sin identificación propia. Hace referencia a user_id y promotions_id

class PromotionsUsers < ActiveRecord::Base
end

Entonces, ¿cómo agrego un usuario a una promoción? He intentado algo como esto:

user = User.find(params[:id])
promotion = Promotion.find(params[:promo_id])
promo = user.promotions.new(promo)

Esto da como resultado el siguiente error:

NoMethodError: undefined method `stringify_keys!' for #<Promotion:0x10514d420>

Si pruebo esta línea en su lugar: promo = user.promotions.new (promo.id)

Me sale este error:

TypeError: can't dup Fixnum

Estoy seguro de que hay una solución muy fácil para mi problema, y no estoy buscando la solución de la manera correcta.

Respuestas a la pregunta(3)

Su respuesta a la pregunta