2010-06-24 19 views
0

我有一個名爲宋模型導軌:依賴=>:消滅錯誤 - 要使用替代ID爲刪除

has_many :genre_songs, :dependent => :destroy 

我已經有了一個連接模型GenreSong(與genre_id和song_id),其當歌曲記錄被刪除時我想銷燬。

看來,軌道正在尋找一個主鍵在GenreSong模型刪除,因爲我得到這個錯誤:

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

是否有另一種方式做到這一點(我想在song_id刪除會足夠)?通過指定應執行刪除的id。

也許我的SQL已關閉,但在連接表中只有另外兩個主鍵有額外的主鍵,這似乎是錯誤的。

回答

3

這是因爲你的連接表更像是一個has_many_and_belongs_to

這就是你不需要在你的表中的列id的唯一案例。在其他情況下,您需要定義您的primary-key。默認情況下,它是id

所以你需要有這個id列,或者你需要定義你的類型和歌曲之間的關係,如has_many_and_belongs_to關係。

+0

是不是'has_and_belongs_to_many'? – fab 2014-09-05 15:04:44