ruby-on-rails - 在模型中使用 ||= 而不是 = 来定义常量的原因是什么

标签 ruby-on-rails ruby

在当前项目中找到:

class Video < ActiveRecord::Base
  ...
  VALID_VIDEO_HOSTS ||= %w(www.youtube.com youtube.com vimeo.com www.vimeo.com)
  ...
end

通常我使用简单的 VALID_VIDEO_HOSTS = %w(...) 并且没有任何猜测为什么以前的开发人员使用 ||=

有人知道有什么好处吗?

更新

我知道 ||= 在一般情况下的作用,问题主要是关于在模型中以这种方式定义常量。

最佳答案

||= 被用作 memoize the value 的廉价方式,正如其他海报所提到的。然而……

为什么要记住一个常量?

作者很可能在多次加载该源文件时防止警告。 (警告:已初始化常量 VALID_VIDEO_HOSTS)

关于ruby-on-rails - 在模型中使用 ||= 而不是 = 来定义常量的原因是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070762/

相关文章:

javascript - 未初始化常量 ActionView::CompiledTemplates::Current

ruby-on-rails - rails 应用程序中的 therubyracer 或 libv8 是什么?

ruby - 从字符串中删除括号

ruby - 将嵌套数组减少为字符串?

ruby - 有没有 bundler *after* hook?

Rails 3 中的 jQuery Ajax 调用收到 401 未经授权的请求

ruby-on-rails - Rails_admin 新模型配置

jquery - 如何使用 Rails 找到 JQuery 自动完成匹配项时显示响应

ruby - sqlite3不关闭db可以吗

ruby - 在 Ruby 中调用包含类的方法