Ruby on rails 重写ActiveRecord动态查找程序

Ruby on rails 重写ActiveRecord动态查找程序,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个依赖于find\u by\u id的外部库,但我的主键是uuid。id列不存在 有没有一种方法可以将模型。按id查找\u别名为模型。按id查找\u,甚至只是模型。查找 真的没有必要去想象、修改或覆盖任何东西 Model.find_by (uuid: client_id) 或 将满足您的查询需求 一般来说,动态find_by方法不受欢迎,而Model.find_by(uuid:'123')是首选方法 但在您的情况下,听起来您可以像这样覆盖主键 class Model self.pri

我有一个依赖于
find\u by\u id
的外部库,但我的主键是
uuid
id
列不存在


有没有一种方法可以将
模型。按id查找\u
别名为
模型。按id查找\u
,甚至只是
模型。查找

真的没有必要去想象、修改或覆盖任何东西

Model.find_by (uuid: client_id)


将满足您的查询需求

一般来说,动态
find_by
方法不受欢迎,而
Model.find_by(uuid:'123')
是首选方法

但在您的情况下,听起来您可以像这样覆盖主键

class Model
  self.primary_key = 'uuid'
end
这将允许您执行
Model.find('1234-1234-1234-1234')

我仍然不认为这适用于
find\u by\u id
,因为这是指定要查找的列名。如果您确实依赖于此外部库,则可以覆盖
find\u by\u id

class Model
  def self.find_by_id(id)
    find_by uuid: id
  end
end

是的,上游有一个不起作用的黑客。而且他们也不想改变。不!不能上游图书馆。它具体地执行一个
按id查找。维修人员认为不应该改变它。啊,那会是个问题@你的答案应该很适合你的需要。祝你好运
class Model
  def self.find_by_id(id)
    find_by uuid: id
  end
end