I have a join table I''m creating with a migration as follows: create_table :read_global_messages, :id=>false do |t| t.column :user_id, :integer t.column :message_id, :integer end So far so good, however I want the primary key to be user_id and message_id. How do I do this? I tried the following, but that doesn''t work: add_index :read_global_messages, [:user_id, :message_id], :primary I could just add it as a normal index, but ideally I''d like it to be a primary key otherwise this table will be without one (as there''s no ID column). Any ideas? Thanks in advance. -- R.Livsey http://livsey.org
Richard Livsey wrote:> I have a join table I''m creating with a migration as follows: > > create_table :read_global_messages, :id=>false do |t| > t.column :user_id, :integer > t.column :message_id, :integer > end > > So far so good, however I want the primary key to be user_id and > message_id. How do I do this?Rails doesn''t support either composite primary keys or primary keys on join tables. If you need a primary key in your table, you probably want to make it a full-fledged join model (has_many :through instead of habtm). -- Josh Susser http://blog.hasmanythrough.com -- Posted via http://www.ruby-forum.com/.