因此,在Rails 3.2中,ActiveSupp或t::Mem或izable已被弃用.

信息如下:

DEPRECATION WARNING: ActiveSupp或t::Memoizable is deprecated and
will be removed in future releases,simply use Ruby memoization
pattern instead.

它指的是"Ruby记忆模式"(单数),好像有一种模式我们都应该知道并参考...

我猜它们的意思是:

def my_method
  @my_method ||= # ... go get the value
end

def my_method
  return @my_method if defined?(@my_method)

  @my_method = # ... go get the value
end

还有什么我错过的吗?

推荐答案

下面是不推荐使用MemoRizable的commit(以及随后的讨论):https://github.com/rails/rails/commit/36253916b0b788d6ded56669d37c96ed05c92c5c

作者主张@foo ||= ...方法和points to this commit方法作为移民的例子:https://github.com/rails/rails/commit/f2c0fb32c0dce7f8da0ce446e2d2f0cba5fd44b3.

编辑:

Ruby相关问答推荐

CarrierWave Multi-uploader重命名现有文件

Ruby PKCS7:添加;\r〃;字节正在 destruct 解密

如何返回此 OOP Ruby 代码最后一行中的变量?

Sinatra 与 EventMachine WebSockets 一起工作是否成功?

我在哪里可以找到积极开发的 Ruby lint 工具?

在Ruby中将关键字与常规参数混合?

如何按长度对 Ruby 字符串数组进行排序?

差异 - unless/if

为什么 RuboCop 建议用 Array.new 替换 .times.map?

扩展self 和module_function一样吗?

在Ruby中第一个=符号之后获取子字符串

Ruby注入初始为哈希

RSpec:我如何在期望语法中使用数组包含匹配器

我的Ruby在哪里?

to_proc 方法是什么意思?

如何理解 strptime 与 strftime

正则表达式,如何匹配多行?

如何在没有 RVM 的 Ubuntu 上安装 Ruby 2

Ruby 中的Monkey Patching到底是什么意思?

带有类名的动态类定义