我有一个现有的Sqlite表,它有id
列,但它不是主键。主键名为ROWID
。
所以在我的模型中我已经完成了:
self.primary_key = "ROWID"
但是,由于id
字段实际上具有良好的数据,因此AR在使用ROWID
的值实例化记录时会覆盖该数据。
如何保留id
列中的值,同时指示ROWID
是主键?
[6] pry(main)> Message.first.handle
D, [2015-09-14T08:58:59.250979 #921] DEBUG -- : Message Load (0.4ms) SELECT "message".* FROM "message" ORDER BY "message"."ROWID" ASC LIMIT 1
D, [2015-09-14T08:58:59.252343 #921] DEBUG -- : Handle Load (0.1ms) SELECT "handle".* FROM "handle" WHERE "handle"."ROWID" = ? LIMIT 1 [["ROWID", 8]]
=> #<Handle:0x007ff0f930c0e0 ROWID: 8, id: 8, country: "us", service: "iMessage", uncanonicalized_id: nil>
答案 0 :(得分:3)
_read_attribute(:id)
做了这个伎俩