【问题标题】:Wrong SQL for destroy model in Rails 4.2Rails 4.2 中破坏模型的错误 SQL
【发布时间】:2016-09-07 20:05:24
【问题描述】:

我有一个非常简单的模型:

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。

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails activerecord tiny-tds


    【解决方案1】:

    原来问题是数据库表中没有设置主键。将主键显式添加到表后,一切都开始起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 2017-08-18
      • 2017-05-19
      • 2015-04-28
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多