I am not understanding how to utilize collection_select with a single table inheritance model I have been given to use so I hope someone can tell me what I am not thinking of. Suppose there is a look-up table called Color (MySQL syntax): CREATE TABLE Color ( id INT NOT NULL AUTO_INCREMENT, CONSTRAINT pk_Color PRIMARY KEY(id), INDEX USING BTREE(id), name VARCHAR(50) NOT NULL ); And there is a product, lets use Card: CREATE TABLE Card ( id INT NOT NULL AUTO_INCREMENT, CONSTRAINT pk_Card PRIMARY KEY(id), INDEX USING BTREE(id), description VARCHAR(100) NOT NULL ); The table employed in the STI scheme looks like: CREATE TABLE CardColor ( id INT NOT NULL AUTO_INCREMENT, CONSTRAINT pk_CardColor PRIMARY KEY(id), INDEX USING BTREE(id), type VARCHAR(20) NOT NULL, Card_id INT NOT NULL, CONSTRAINT fk_CardColor_Card_id FOREIGN KEY (Card_id) REFERENCES Card(id), Color_id INT NOT NULL, CONSTRAINT fk_CardColor_Color_id FOREIGN KEY (Color_id) REFERENCES Color(id) ); My ActiveRecord models look like: class Color < ActiveRecord::Base set_table_name "Color" validates_presence_of :name validates_length_of :name, :maximum => 50 end class CardColor < ActiveRecord::Base set_table_name ''CardColor'' belongs_to :card, :class_name => ''Card'' belongs_to :color, :class_name => ''Color'' end class InsideColor < CardColor end class OutsideColor < CardColor end class Card < ActiveRecord::Base set_table_name "Card" has_many :insideColors, :class_name => ''InsideColor'', :dependent => :delete_all has_many :outsideColors, :class_name => ''OutsideColor'', :dependent => :delete_all validates_presence_of :description validates_length_of :description, :maximum => 100 end I thought my new.html.erb would employ something like: <%= collection_select(:card, :insideColor, Color.find(:all, :order => :name), :id, :name, { :selected => @card.insideColors.collect {|c| c.Color_id}}, {:multiple=>true, :size => "3"}) %> But that yields an error during submit of: InsideColor(#36756150) expected, got String(#20706320) How do I go about creating InsideColor objects with the related selected Color.id''s and place them in the association? Thank you in advance for your time! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I am not understanding how to utilize collection_select with a single table inheritance model I have been given to use so I hope someone can tell me what I am not thinking of. Suppose there is a look-up table called Color (MySQL syntax): CREATE TABLE Color ( id INT NOT NULL AUTO_INCREMENT, CONSTRAINT pk_Color PRIMARY KEY(id), INDEX USING BTREE(id), name VARCHAR(50) NOT NULL ); And there is a product, lets use Card: CREATE TABLE Card ( id INT NOT NULL AUTO_INCREMENT, CONSTRAINT pk_Card PRIMARY KEY(id), INDEX USING BTREE(id), description VARCHAR(100) NOT NULL ); The table employed in the STI scheme looks like: CREATE TABLE CardColor ( id INT NOT NULL AUTO_INCREMENT, CONSTRAINT pk_CardColor PRIMARY KEY(id), INDEX USING BTREE(id), type VARCHAR(20) NOT NULL, Card_id INT NOT NULL, CONSTRAINT fk_CardColor_Card_id FOREIGN KEY (Card_id) REFERENCES Card(id), Color_id INT NOT NULL, CONSTRAINT fk_CardColor_Color_id FOREIGN KEY (Color_id) REFERENCES Color(id) ); My ActiveRecord models look like: class Color < ActiveRecord::Base set_table_name "Color" validates_presence_of :name validates_length_of :name, :maximum => 50 end class CardColor < ActiveRecord::Base set_table_name ''CardColor'' belongs_to :card, :class_name => ''Card'' belongs_to :color, :class_name => ''Color'' end class InsideColor < CardColor end class OutsideColor < CardColor end class Card < ActiveRecord::Base set_table_name "Card" has_many :insideColors, :class_name => ''InsideColor'', :dependent => :delete_all has_many :outsideColors, :class_name => ''OutsideColor'', :dependent => :delete_all validates_presence_of :description validates_length_of :description, :maximum => 100 end I thought my new.html.erb would employ something like: <%= collection_select(:card, :insideColor, Color.find(:all, :order => :name), :id, :name, { :selected => @card.insideColors.collect {|c| c.Color_id}}, {:multiple=>true, :size => "3"}) %> But that yields an error during submit of: InsideColor(#36756150) expected, got String(#20706320) How do I go about creating InsideColor objects with the related selected Color.id''s and place them in the association? Thank you in advance for your time! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---