我有一个名为clients
的表,由AR模型Client
支持。这是clients
table:
clients
- id <serial primary key>
- name <varchar(255)>
- version <varchar(255)>
我已经使用paper trail gem为它添加了版本。但是,当我更新或创建记录时,列version
不会更新。当我执行Client.first.version
时,它会给我nil
值,即使表中的所有记录都有version
列不为空或空。我怀疑这是因为纸痕宝石。当我将项目的分支切换到不使用gem的版本时,我可以获得非零值的版本。
是否有解决此问题的解决方法?
答案 0 :(得分:2)
当然,有。问题是,paper_trail中的version
is the default关联名称,因此在客户端上调用关联而不是获取它的属性。
您可以将模型更改为:
WITH CTE AS(
SELECT Device_Code,
ign,
Event_DateTime,
ROW_NUMBER() OVER (PARTITION BY ign ORDER BY Device_Code) RN
FROM TableName
)
SELECT Device_Code,
ign,
Event_DateTime
FROM CTE
WHERE RN % 2 = 1
修改:刚发现它在paper_trail中也有记录 - https://github.com/airblade/paper_trail#6-extensibility