Many-to-many. add an entry in the auxiliary table. ROR3

I’m newbie in ROR.

I need to create many-to-many.
There are 2 models:
-product (product)
-category (categor)

To connect them i make the third model - prodcat (prod_id,cat_id).

In Product controller:

def create
@product = Product.new(params[:product])
respond_to do |format|
if @product.save
params[:prodcat].each do |cat|
pms=[“prod_id”=>@product.id,“cat_id”=>cat]
fl=File.new("/home/bla-bla-bla/out",“a”)
fl.puts pms
fl.close
@pc=Prodcat.new(pms)
@pc.save
end
format.html { redirect_to(@product,
:notice => ‘Product was successfully created.’) }
format.xml { render :xml => @product, :status => :created,
:location => @product }
else
format.html { render :action => “new” }
format.xml { render :xml => @product.errors,
:status => :unprocessable_entity }
end
end
end

After creation new product there are new records in database, but they
are empty:

AREL (1.3ms) INSERT INTO “prodcats” (“prod_id”, “cat_id”,
“created_at”,“updated_at”) VALUES (NULL, NULL,
‘2010-10-14 15:07:14.203159’, 2010-10-14 15:07:14.203159’)
AREL (1.1ms) INSERT INTO “prodcats” (“prod_id”, “cat_id”,
“created_at”, “updated_at”) VALUES (NULL, NULL,
‘2010-10-14 15:07:14.228977’, ‘2010-10-14 15:07:14.228977’)

But /home/bla-bla-bla/out isn’t empty and has data, that must be in
database:

{“prod_id”=>9, “cat_id”=>“1”}
{“prod_id”=>9, “cat_id”=>“2”}
{“prod_id”=>9, “cat_id”=>“3”}
{“prod_id”=>9, “cat_id”=>“4”}

Where is my mistake?