问题标签 [method-missing]

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 投票
15 回答
3588 浏览

programming-languages - 在其他语言中是否有 Ruby 的 method_missing 等价物?

在 Ruby 中,对象有一个方便的方法被调用method_missing,它允许处理甚至没有(显式)定义的方法的方法调用:

当 obj 收到无法处理的消息时由 Ruby 调用。symbol 是被调用方法的符号,args 是传递给它的任何参数。默认情况下,调用此方法时,解释器会引发错误。但是,可以覆盖该方法以提供更多动态行为。下面的示例创建了一个 Roman 类,它响应名称由罗马数字组成的方法,并返回相应的整数值。

例如,Ruby on Rails 使用它来允许调用诸如find_by_my_column_name.

我的问题是,还有哪些其他语言支持等价于method_missing,以及如何在代码中实现等价物?

0 投票
2 回答
398 浏览

ruby-on-rails - 在没有 method_missing 的情况下使用 Rails 获得 SEO 友好的 URL?

目前,我们正在使用 method_missing 在我们的控制器中捕获对 SEO 友好操作的调用,而不是为变量的每个可能值创建操作。我们想要的是这样的 URL:

/学生/鲍勃史密斯

而不是 /students/show/342

有比 method_missing 更清洁的解决方案吗?

谢谢!

0 投票
4 回答
1743 浏览

scala - scala中是否有method_missing?

类似于 Ruby 中的那个

0 投票
2 回答
447 浏览

ruby-on-rails - 难以将 `is_x?` 别名为 `has_role? x`

每个用户都有很多角色;要找出用户是否具有“管理员”角色,我们可以使用以下has_role?方法:

some_user.has_role?('admin')

其定义如下:

我希望能够写成some_user.has_role?('admin')some_user.is_admin?所以我做到了:

这适用于这种some_user.is_admin?情况,但是当我尝试在另一个关联中引用的用户上调用它时失败:

是什么赋予了?

0 投票
3 回答
271 浏览

powershell - powershell 有 method_missing() 吗?

我一直在玩 powershell 的动态能力,我想知道一些事情

powershell 中是否有任何类似于 Ruby 的 method_missing() 的东西,您可以在其中设置“捕获所有方法”来动态处理对对象上不存在的方法的调用?

0 投票
1 回答
1869 浏览

php - PHP中的全局“method_missing”?

可能重复:
魔术函数 __call() 函数?

我可以实现 __call() 以在 PHP 类中提供 method_missing 行为。有没有办法在全局范围内提供相同的功能?

我想要这样的东西:

输出:

0 投票
2 回答
4378 浏览

ruby - Ruby,从 Date.day_fraction_to_time 获取小时、秒和时间

我在这里找到了这种方法。

我有以下错误:

我检查了/usr/lib/ruby/1.9.1/date.rb并找到了它:

但是如果我用ruby1.8运行它就没有问题。/usr/lib/ruby/1.8/date.rb给了我:

所以我去看了文档(1.9)并且没有这种方法的痕迹。我知道这是一个愚蠢的问题,但他们为什么要删除它?甚至还有关于如何使用/usr/lib/ruby/1.9.1/date.rb中的方法的示例:

但我仍然收到错误:

0 投票
2 回答
184 浏览

ruby - Ruby:在 method_missing 中找出方法类型的最佳方法是什么?

目前我有这个代码:

但这似乎不是最好的解决方案=\

任何想法如何使它更好?谢谢。

0 投票
5 回答
828 浏览

ruby - 是什么阻止了静态类型语言拥有像 Ruby 的 method_missing 之类的东西?

我对静态类型语言没有太多经验(目前正在学习 Scala 并喜欢它!)但我注意到的一件事是,它们似乎从来没有像 Ruby 的 method_missing 或 ColdFusion 的 onMissingMethod 这样的东西。静态类型语言是否存在一些固有的限制来阻止或使其变得困难?

0 投票
2 回答
2466 浏览

ruby-on-rails - method_missing 的多个参数

method_missing在模型中实现了以下代码:

$CLIENT是一个全局对象。请注意,这是method_missing针对,而不是实例。

我在脚本/控制台中尝试了以下内容:

我在这里遗漏了一些非常明显的东西吗?我在 Rails 2.3.8 和 jRuby 上运行它,如果这有什么不同的话。

编辑:这让我更加困惑:

用 Integer 以外的其他参数替换第二个参数似乎可行,但当然该参数应该是一个 Integer ...我现在怀疑 jRuby 或我集成到其中的 Java 类中存在问题。