假设我有一个带有普通整数主键(id)的模型Foo和一个" alternate"主键" bar"这是一个字符串。
为了使问题复杂化,Foo支持软删除,因此它具有布尔属性" is_deleted"。 "杆"仅在is_deleted = false的记录集上是唯一的。
我想找到单个未删除行的整数id,其中bar =" baz",如果没有这样的行,则为nil。以下是我提出的建议:
Foo.where(bar: 'baz', is_deleted: false).limit(1).pluck(:id).first
这似乎很啰嗦。有没有更好的办法?不能修改底层数据库。我可以自由更改模型类,只要它不会干扰使用此模型的其他代码。