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?