gpt4 book ai didi

ruby-on-rails - Rails/ActiveRecord .where 方法命名与 Ruby Gem 类方法的冲突

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:04 27 4
gpt4 key购买 nike

我正在开发一个 Ruby gem,它将成为 REST API 包装器。

我想做的是有一个类可以从 gem 实例化,方法类似于 Rails/ActiveRecord 的“where”方法,这样我就可以在方法中传递类似 SQL 的语法并返回一些 JSON .像这样的东西:

include 'my-gem'

test = MyGem::ClassExample.where('name like %test%')

# returns JSON object from REST API

我担心的是,如果我要将这个 gem 包含到 Ruby on Rails 应用程序中,这个“where”方法是否会与 ActiveRecord 的“where”发生命名冲突,或者“where”方法是否是我在我的课?

基本上,我认为应该没问题,但我害怕因为 Rails 魔法/我的无知而不得不重构一堆测试并重命名一堆方法。


顺便说一句,我不担心净化输入,REST API 不提供直接的 SQL/数据库访问,它是一个闭源产品。有一些需要预先完成的配置,我没有包含在这个例子中,我只是想知道我是否可以使用这个方法名称,或者是否有我可能与之冲突的最佳实践/潜在问题。

最佳答案

类是命名空间。

如果您在自己的类中定义 where 而 Rails 在另一个类中定义 where 则不会发生冲突。实例方法和类方法都是如此,毕竟只是类的单例类上的实例方法。

但是,如果您要在 Object 或其他顶级类上定义 where,那么您将遇到很多冲突,因为所有类都是这些类的子类。

关于ruby-on-rails - Rails/ActiveRecord .where 方法命名与 Ruby Gem 类方法的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41274464/

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