Rails ActiveRecord Mysql2 ::错误:未知列'objectname.'

Cit*_*enX 3 mysql activerecord ruby-on-rails

我有一个在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
Run Code Online (Sandbox Code Playgroud)

ObjectName模型类有3个值(object_id,other_id和prop1).更新发生时,生成的SQL将显示为

UPDATE `objectname` SET `other_id` = 245 WHERE `objectname`.`` IS NULL
Run Code Online (Sandbox Code Playgroud)

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

小智 14

在处理没有定义主键的表时,我遇到了同样的错误.场上有一个独特的钥匙,但没有PK.在模型中设置PK为我修复了它:

self.primary_key = :object_id
Run Code Online (Sandbox Code Playgroud)