【问题标题】:Rails ActiveRecord Mysql2::Error: Unknown column 'objectname.'Rails ActiveRecord Mysql2::Error: Unknown column 'objectname.'
【发布时间】:2012-06-21 12:18:42
【问题描述】:

我对在 Rails 下失败的现有 MySQL 表进行了更新。这是相关的控制器代码:

on = ObjectName.find_by_object_id(params[:id])
if (on) #edit existing
  if on.update_attributes(params[:param_type] => params[:value])
    respond_to do |format|
      ...
end

ObjectName 模型类有 3 个值(object_id、other_id 和 prop1)。更新发生时,生成的 SQL 输出为

UPDATE `objectname` SET `other_id` = 245 WHERE `objectname`.`` IS NULL

生成的 SQL 的 SET 部分是正确的。为什么将WHERE 子句设置为.`` IS NULL

【问题讨论】:

  • mti 是什么?标题与问题内容有何关联?
  • mti 是我的拼写错误。我已经纠正了。我也更正了标题。这就是我在执行此代码时收到的错误。
  • ObjectName.primary_key 返回什么?
  • 这完全取决于你的params[:param_type] 是什么。因为那部分 SQL 是由这个参数的值填充的。
  • nil,尽管表本身在 2 个 _id 字段上有一个复合 PK。

标签: mysql ruby-on-rails activerecord


【解决方案1】:

在使用未定义主键的表时遇到了同样的错误。现场设置了唯一密钥,但没有 PK。在模型中设置 PK 为我修复了它:

self.primary_key = :object_id

【讨论】:

  • 蒂姆,你救了我的命。卡了几个小时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
  • 2017-06-09
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
相关资源
最近更新 更多