我正在处理遗留代码,无法访问数据库。有一个表没有主id列。
我可以使用record = Model.find_or_initialize_by(listing_id: rating.pid, criteria_id: 33)
找到记录。
我可以使用record.rating_count += 1
增加属性,但是当我尝试使用record.save!
保存属性时,会出现错误TypeError: nil is not a symbol nor a string
。
我认为这是因为记录没有主要ID(密钥),但我不确定为什么它不更新记录。
如果您有任何建议,请告诉我。
答案 0 :(得分:1)
我在尝试更新没有id列的模型(或我可以使用的其他主键)时也收到错误TypeError: nil is not a symbol nor a string
。我不得不加一个。
您可以使用迁移回溯添加主键:
add_column :people, :id, :primary_key