From: serbulentunsal@... Date: 2005-12-18T04:42:46+09:00 Subject: Passing multiple parameters with select-option to controller Hi all, I'm using Windows Xp, Mysql 5, Webrick, Rails 1.0 I've 3 tables which have HABTM relationship. My tables names are all set to uncountble. Name of tabels are anabilimdali (includes department info id name etc.), ogretimuye (personel information like id , name , dept. ) yayin (document information), and for relationships yayin_anabilimdali , yayin_ogretimuye . The relationship between yayin_anabilimdali is ok. But i can't write any parameters to yayin_ogretimuye table when I try to create new yayin object. The object was successfully creted in yayin table and the relationship was successfully created in yayin_anabilimdali table. Here is the codes; model yayin.rb class Yayin < ActiveRecord::Base has_and_belongs_to_many :ogretimuye has_and_belongs_to_many :anabilimdali end controller yayin_controller.rb class YayinController < ApplicationController model :yayin ..... ..... def new @anabilimdali = Anabilimdali.find (:all , :order => "ad") @ogretimuye = Ogretimuye.find (:all , :order => "ad") end def create @anabilimdali = Anabilimdali.find_all @ogretimuye = Ogretimuye.find_all item = Yayin.new item.attributes = @params["yayin"] if item.save for anabilimdali in @anabilimdali if (@params[anabilimdali.ad]) item.anabilimdali<<(anabilimdali) end end for ogretimuye in @ogretimuye if (@params[ogretimuye[ogretimuye.id] == ogretimuye.id ) item.ogretimuye<<(ogretimuye) end end redirect_to(:action => "list") else render_text "Couldn't add new item" end end .... .... View new.rhtml

New yayin

<%= start_form_tag :action => 'create' %> <%= render :partial => 'form' %>


<% for @anabilimdali in @anabilimdali %> <%= @anabilimdali.ad %> :
<% end %>


<%for ogretimuye in @ogretimuye%> <%= submit_tag "Create" %> <%= end_form_tag %> <%= link_to 'Back', :action => 'list' %> And the development.log Processing YayinController#create (for 127.0.0.1 at 2005-12-17 12:52:05) [POST] Parameters: {"commit"=>"Create", "ogretimuye"=>{"ogretimuye.id"=>["161"]}, "yayin"=>{"ad"=>"888888888"}, "action"=>"create", "controller"=>"yayin", "AAT\375p"=>"0"} Anabilimdali Load (0.000000) SELECT * FROM anabilimdali  Ogretimuye Load (0.079000) SELECT * FROM ogretimuye  Yayin Columns (0.015000) SHOW FIELDS FROM yayin SQL (0.000000) BEGIN SQL (0.000000) INSERT INTO yayin (`kabul_yil`, `yayin_yil`, `ad`, `cilt`, `index_tur`, `ozet`, `issn`, `sayfalar`, `yayinlayici`, `tur`, `yer`, `yer_tur`, `dil`, `index`, `sayi`, `anahtar`, `yerli_yabanci`) VALUES(0, NULL, '888888888', NULL, NULL, '', NULL, NULL, '', '0', NULL, '0', '', NULL, NULL, '', '') SQL (0.047000) COMMIT Anabilimdali Columns (0.000000) SHOW FIELDS FROM anabilimdali Anabilimdali Load (0.000000) SELECT * FROM anabilimdali LEFT JOIN anabilimdali_yayin ON anabilimdali.id = anabilimdali_yayin.anabilimdali_id WHERE (anabilimdali_yayin.yayin_id = 20 )  SQL (0.000000) BEGIN anabilimdali_yayin Columns (0.015000) SHOW FIELDS FROM anabilimdali_yayin SQL (0.000000) INSERT INTO anabilimdali_yayin (`anabilimdali_id`, `yayin_id`) VALUES (41, 20) SQL (0.047000) COMMIT Ogretimuye Columns (0.016000) SHOW FIELDS FROM ogretimuye