2016-09-07 75 views
0

我有一個漂亮的simlple模型錯誤:SQL用於摧毀Rails的模型4.2

class SystemKnowledge < ActiveRecord::Base 
    validates_presence_of  :system, :value 
    validates_numericality_of :value, only_integer: true, greater_than: 0, less_than_or_equal_to: 100 

    belongs_to :issue 

    attr_accessible :system, :value 
end 

有一次,我打電話model.destroy的對象上,我得到這個錯誤:

ActiveRecord::StatementInvalid: TinyTds::Error: Incorrect syntax near '='.: 
EXEC sp_executesql N'DELETE FROM [system_knowledge] WHERE [system_knowledge]. = @0; 
SELECT @@ROWCOUNT AS` AffectedRows', N'@0 int', @0 = 275 

據我得到它的問題是生成的SQL中沒有id字段。我不明白的是爲什麼會發生這種情況。

我正在使用SQL Express 2014和TinyTds的Rails 4.2。

任何幫助將不勝感激。

回答

0

原來問題是在數據庫表中沒有設置主鍵。將主鍵明確添加到表後,它們都開始工作。