gpt4 book ai didi

ruby-on-rails - 更新没有 id 列的 ActiveRecord

转载 作者:行者123 更新时间:2023-12-04 12:01:40 24 4
gpt4 key购买 nike

在迁移中是一个没有创建 id 列的表:

create_table :drivers_companies, :id => false do |t|
t.references :driver
t.references :company
t.string :last_sessionid
end

保存记录时:
dc = DriversCompany.where(company_id: 1, driver_id: 5)
if dc.length>0
dc[0].last_sessionid = req.sessionID
dc[0].save!
end

我收到一个错误:
Mysql2::Error: Unknown column 'drivers_companies.' in 'where clause': UPDATE 'drivers_companies' SET 'last_sessionid' = 'bth49sv0outsehcg0ribuiu4h' WHERE 'drivers_companies'.'' IS NULL
如何更新没有 ID 列的表中的记录?

最佳答案

ActiveRecord 需要一个主键来做到这一点。这可能是无法更改的旧表的问题。如果不更改表格,您将无法解决此问题。

有时可以使用“ActiveRecords 的复合主键” gem 来解决它:
https://github.com/composite-primary-keys/composite_primary_keys

关于ruby-on-rails - 更新没有 id 列的 ActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com