问题标签 [alias-method]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
959 浏览

ruby-on-rails - ruby on rails 添加功能以更改模型属性

在我的rails 模型中,我有一个名为employer_wcb 的十进制属性。如果在更改雇主 wcb 时将脏位设置为 true,我希望它。我想覆盖employer_wcb setter 方法。有什么办法(特别是使用元编程)?

0 投票
1 回答
1201 浏览

ruby - 在 Ruby 中使用多个模块覆盖相同的 Class 方法,需要调用 super。我是使用方法别名还是其他一些巧妙的技巧?

情况如下:

我有一个用户模型和两个用于身份验证的模块:Oauth 和 Openid。它们都覆盖ActiveRecord#save,并且有相当多的实现逻辑。

鉴于我可以判断用户何时尝试通过 Oauth 与 Openid 登录,但它们都已被覆盖save,那么“最终”如何覆盖save以便我可以有条件地调用其中一个模块的实现?

这是我所描述的基本结构:

我正在考虑使用alias_methodlike so,但这太复杂了,因为我可能还有 1 或 2 个类似的模块。我也尝试使用这些save_with_oauth方法(如上所示),几乎可以工作。唯一缺少的是我还需要调用ActiveRecord::Base#save(超级方法),所以是这样的:

但我不允许在 ruby​​ 中这样做。

有什么聪明的解决方案的想法吗?

alias_method_chain会做吗?我避免这样做,因为人们似乎说这是一个坏主意。

(边走边找东西):

0 投票
1 回答
3957 浏览

ruby-on-rails - alias_attribute 和使用原始属性名称创建和方法会导致循环

我试图在我的模型中的一个属性中动态创建一个方法链。现在我有这个功能:

所以我收到一个带有属性名称的字符串,将其别名为' _without_filter '(alias_method 或 alias_method_chain 在这里失败,因为创建类时属性不存在),然后我创建了一个具有属性名称的新方法,我在其中过滤它内容。

但不知何故,当我调用“#{attribute_name}_without_filter”时,它调用了我的新方法(我认为是因为 alias_attribute 某种方式),并且程序进入了堆栈循环。

我试图重命名该属性,因此我可以将其名称用于方法...

有人可以请教我。

0 投票
1 回答
6026 浏览

ruby - alias_method 和 class_methods 不混合?

我一直在尝试修改全局缓存模块,但我无法弄清楚为什么这不起作用。

有没有人有什么建议?

这是错误:

...由此代码生成:

0 投票
3 回答
1161 浏览

javascript - JavaScript中的别名方法链?

在 JavaScript 中,如何创建一个与现有函数同名的新函数,同时保留原始函数以便可以在新函数中调用它?

0 投票
1 回答
621 浏览

ruby - Ruby 中的责任链和 alias_method 问题

我正在尝试在 Ruby 和 ActiveRecord 中为多态对象实现责任链模式。我有几个问题。

  • 有时我在尝试 alias_method 时收到一个方法未定义的错误,我认为这是因为未加载类或其他原因,所以我明确地发送来获取方法
  • 我得到一堆无限链,其中别名函数(original_method)调用调用 original_method 的方法。我想知道这是否是因为当您为已被覆盖的方法设置别名时,您实质上是在使“original_method”成为别名方法的副本。
  • 我目前正在通过让像“chained”这样的函数返回具有所有已定义方法的 Setting 子类来解决此问题,但很好奇为什么类中的 alias_method 存在如此多的问题。

这是一个例子:

然后,我有一个设置对象:

0 投票
3 回答
1746 浏览

ruby - 有没有一种优雅的方法来测试一个实例方法是否是另一个实例方法的别名?

在单元测试中,我需要测试 alias_method 定义的别名方法是否已正确定义。我可以简单地对用于其原件的别名使用相同的测试,但我想知道是否有更明确或更有效的解决方案。例如,有没有办法 1) 取消引用方法别名并返回其原始名称,2) 获取并比较某种底层方法标识符或地址,或 3) 获取并比较方法定义?例如:

建议?

0 投票
3 回答
998 浏览

perl - OO-Perl 别名类属性

我有一个正在开发的模块。我正在设置一些这样的属性:

而且,我想使用 AUTOLOAD 来帮助创建访问这些属性的方法。例如,$foo->Bar()返回 的值$self->{BAR}。没问题。一切都是标准的。

现在,我想创建别名方法。例如,如果有人说$obj->Fu();,我会回来$self->{FOO}。我想做的是创建一个$self->{FU}指向与$self->{FOO}. 这样,当我设置 的值时$self->{FOO}$self-{FU}也会设置。这样,我不必对 AUTOLOAD 的工作方式进行各种更改,也不必记住$self->{FU}在我设置$self->{FOO}.

有什么简单的方法吗?

0 投票
1 回答
811 浏览

ruby - 类 << self、alias_method 和猴子修补 Mechanize::Cookie

我遇到了 Mechanize::Cookie 行为不端的问题,我想尝试对其进行修补。我的代码:

当我添加这个时,cookie 没有被添加,我不知道为什么。

编辑: 要查看问题,请尝试使用和不使用猴子补丁的代码:

如果没有补丁,您将看到一个完整的 cookie 罐,而它是一个空的。

0 投票
1 回答
1159 浏览

ruby - 继承类中的 ruby​​ method_alias

我正在深入研究 ruby​​ 元编程并有下一个问题。例子:

因此,当 mixin 使用 2 次时,会导致错误。解决此类问题的最佳方法是什么?如何确定混合存在并在新混合之前将其删除