Rails пытается отправить идентификатор для таблицы соединений модели habtm? - PullRequest
0 голосов
/ 22 января 2010

Итак, у меня есть две модели рельсов - user и role - каждая из которых указана с помощью habtm и таблицы соединений users_roles.

Когда я сохраняю из своей пользовательской формы, которая имеет флажки для выбора ролей, rails пытается вручную вставить значение в столбец id таблицы соединения. Это не имеет смысла для меня, так как столбец id должен быть установлен в auto_increment, и поэтому ему не нужно передавать значение. Каждый раз, когда я пытаюсь сохранить, я получаю ошибку MySQL.

Я что-то упустил?

Спасибо.

1 Ответ

1 голос
/ 22 января 2010

если вы используете ассоциацию has_and_belongs_to_many, то вам не нужна никакая модель для таблицы соединения, и таблица соединения не должна создаваться со столбцом id, она должна содержать только столбцы user_id и role_id:

   class CreateUsersRolesJoinTable < ActiveRecord::Migration
    def self.up
      create_table :users_roles, :id => false do |t|
        t.integer :user_id
        t.integer :role_id
      end
    end

    def self.down
      drop_table :users_roles
    end
  end

Смотри также:

...