1

如果我在控制器之外尝试它可以工作:

using ParamsExtension
class ApplicationController

如果我在控制器内部尝试或操作它不起作用:

class ApplicationController
using ParamsExtension

它抛出'未定义的方法'使用'。

我读了这篇文章,作者在课堂上使用它:timelessrepo.com/refinements-in-ruby

4

2 回答 2

2

根据这篇文章,类内的改进仅适用于 2.3 及更高版本。

于 2018-03-19T23:10:05.797 回答
1

我从文档中阅读了以下内容:

您只能在顶层激活细化,而不是在任何类、模块或方法范围内。您可以在传递给 Kernel#eval 的字符串中激活细化,该字符串在顶层进行评估。细化一直有效,直到文件结束或 eval 字符串结束。

http://www.ruby-doc.org/core-2.1.1/doc/syntax/refinements_rdoc.html

于 2014-07-24T19:15:48.537 回答