rails: зависимый =>: уничтожить ошибку - хотите использовать альтернативный идентификатор для удаления - PullRequest
0 голосов
/ 24 июня 2010

У меня есть модель с именем Song с

has_many :genre_songs, :dependent => :destroy

У меня есть модель соединения GenreSong (с genre_id и song_id), которую я хочу уничтожить при удалении записей песни.

Похоже, что rails ищет первичный ключ для удаления в модели GenreSong, так как я получаю эту ошибку:

 Mysql::Error: Unknown column 'id' in 'where clause': DELETE FROM `genre_songs` WHERE `id` = NULL

Есть ли другой способ сделать это (я думаю, что удаление на song_id будетбыть достаточным)?Указав, по какому идентификатору должно быть выполнено удаление.

Возможно, мой SQL отключен, но мне кажется неправильным иметь дополнительный первичный ключ в таблице соединений, который должен состоять только из двух других первичных ключей.

1 Ответ

3 голосов
/ 24 июня 2010

Это потому, что ваша таблица соединений больше похожа на has_many_and_belongs_to

Это единственный случай, когда вам не нужен столбец id в вашей таблице.Во всех остальных случаях вам нужно определить ваш primary-key.По умолчанию это id.

Так что вам нужен этот столбец id, или вам нужно определить отношение между жанром и песней, как отношение has_many_and_belongs_to.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...