Rails 4 find_by 是否已弃用?

2024-03-15

我听说 find_by 已被弃用,这是真的吗?我一直在考虑替代方案,例如为每个人创建find另一种方法,例如:

before:

Model.find_by_username 'username'

后: --模型中---

class << self
   def by_username username
      where(:username => username).first 
   end
end

这是一个好的命名吗?你给这些方法起了什么名字?

Update:

find_by 并未被弃用,但公告本来可以更清晰! https://edgeguides.rubyonrails.org/4_0_release_notes.html#active-record-deprecations


根据Rails 4 发行说明 http://guides.rubyonrails.org/4_0_release_notes.html#active-record-deprecations:

All dynamic除了 find_by_... 和 find_by_... 之外的方法!已弃用。

find_by不是动态方法,因此它没有被弃用, and find_by_... & find_by_...!是动态的,但仍然没有像上面提到的那样被弃用。

因此,这意味着您仍然可以使用 Active Record 提供的原始方法,而无需定义自己的方法:

Model.find_by_username(:username)
Model.find_by(username: 'value', age: 24)


如果您想要真正已弃用的查找器方法的功能,您可以包含它们被移入的 gem:activerecord-deprecated_finders https://github.com/rails/activerecord-deprecated_finders。或者遵循 Rails 4 发行说明的说明:

以下是重写代码的方法:

  • find_all_by_... 可以使用 where(...) 重写。
  • find_last_by_... 可以使用 where(...).last 重写。
  • scoped_by_... 可以使用 where(...) 重写。
  • find_or_initialize_by_... 可以使用 find_or_initialize_by(...) 重写。
  • find_or_create_by_... 可以使用 find_or_create_by(...) 重写。
  • 查找或创建者...!可以使用 find_or_create_by!(...) 重写。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 4 find_by 是否已弃用? 的相关文章

随机推荐

  • OmniAuth::NoSessionError - 您必须提供会话才能使用 OmniAuth。 (在设备中配置)

    您好 我正在学习如何使用omniauth 作为 ember 应用程序的后端 当我运行我的应用程序时 我收到下面提到的错误 OmniAuth NoSessionError 您必须提供会话才能使用 OmniAuth 在救援轨道上 我的应用程序在
  • 如何使这个 JS 函数异步?

    function takesTime for var i 0 i
  • AVFoundation 根据预览宽高比裁剪捕获的静态图像

    我的问题与这个问题大多相似 裁剪 AVCaptureSession 捕获的图像 https stackoverflow com questions 5780580 cropping image captured by avcapturese
  • 我如何将 pack uri 资源与媒体播放器一起使用?

    我有一些非常简单的代码 只需要播放指定音量的声音 如下所示 var mp new MediaPlayer mp Open uri mp Volume volume mp Play 出现问题是因为这是 Prism 模块的一部分 我不知道执行程
  • spring security的配置问题

    我有 Spring Security 应用程序 以下是我的 security context xml
  • 列表理解中的“with”关键字? [复制]

    这个问题在这里已经有答案了 我遇到了这种用于读取文件中的行的语法 with open as f for line in f
  • 使用 TFS API 检测文件删除更改(自动,无需 VS 交互)

    我在 tfs 工作区中有一个本地文件夹并使用 TFS API 每天晚上我都会删除这个文件夹 然后将数据库脚本编写为 sql 文件 如果现在添加或编辑了某些内容 则会找到更改并进入待处理的更改以进行签入 问题是我如何使用 TFS API 检测
  • Python将字符串转换为变量名

    我知道这可能会出现重复 但到目前为止我还没有找到 或者应该理解 我正在寻找的答案 我有一个字符串列表 想要将每个字符串转换为一个变量名 然后为其分配一些内容 我知道我可能需要一个字典 但我对它们不熟悉 因为我对 python 相对较新 并且
  • Android wifimanager总是返回true

    这简直要了我的命 任何帮助将不胜感激 我想使用 wifi 管理器连接到开放网络 我遇到的问题是该代码声称连接到任何网络 甚至是不存在的网络 下面是执行并使用网络 SSID 调用的完整代码 无论您传递给它什么字符串作为网络的 SSID 即使不
  • 是否可以释放静态定义的数组?

    您可以释放使用静态分配定义的数组的内存吗 不 这是不可能的取消分配静态分配的内存 根据语言 例如 C C 使用指针 您也许可以将此数组所持有的内存用于其他目的 但这样做只会re use记忆 内存不会被释放per se 也就是说 将静态内存与
  • 调用基类构造函数而不命名其类

    class MyDerived public Incredble
  • iphone dev - NSUserDefaults 检查布尔值是否存在

    我刚刚向我的应用程序添加了一个设置包 但在读取布尔设置时遇到问题 我知道 在启动应用程序时 除非用户实际输入设置 否则不会读取设置 这就是我想要捕获的内容 但是 我的代码只是捕获答案是否为 否 或尚未设置的情况 我需要查明它们是否已设置 然
  • 如何去除 iPhone 中的阴影

    我正在使用以编程方式从按钮制作阴影的标准方法 但我希望在完成按钮后阴影不再存在 我可以将不透明度设置为 0 但阴影是否仍然存在 如果存在 仍然会对系统造成负担 谢谢 这给出了一个错误 tempButton superview layer s
  • HTML 电子邮件模板是否需要使用 style 属性?

    是否存在需要 出于某种原因 将 CSS 规则放置在style直接使用 HTML 标签的属性 而不是将 CSS 规则放置在 HTML 电子邮件模板 HEAD 的 STYLE 元素中的选择器内 我要求最常见的 CSS 选择器 如类型 类 ID
  • php 爆炸并强制数组键从 1 而不是 0 开始

    我有一个字符串 它将被分解以获得一个数组 正如我们所知 输出数组键将从 0 开始作为第一个元素的键 1 为第二个元素 依此类推 现在如何强制该数组从 1 而不是 0 开始 对于类型化数组来说非常简单 我们可以这样写 array 1 gt v
  • 如何从标准输入构建 tar?

    我怎样才能将信息输入tar指定文件名 就像是 tar cfz foo tgz files from 但请记住 这并不适用于所有可能的文件名 你应该考虑 null选项和饲料tar from find print0 The xargs示例对于大
  • 这种模式似乎很详尽,但我仍然收到警告

    我正在学习 sml 并编写了以下简单函数 Return a list with every other element of the input list fun everyOther everyOther x x everyOther x
  • 使用键绑定在 VSCode 中执行预定义的查找替换全部

    我似乎找不到可以从 VSCode 键绑定运行的记录命令的良好列表 在在线 VSCode 文档中 命令指南 https code visualstudio com api extension guides command列出了两种发现命令的方
  • 具有下一个和上一个功能的一张一张显示图像

    我已将图像存储在单独的文件夹 图像 中 并创建了一个存储 letterNumber 的数据库 并且每个 letterNumber 都关联了多个图像 表 animages 如下 letterNo imageNo path height wid
  • Rails 4 find_by 是否已弃用?

    我听说 find by 已被弃用 这是真的吗 我一直在考虑替代方案 例如为每个人创建find另一种方法 例如 before Model find by username username 后 模型中 class lt lt self def