问题标签 [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.
programming-languages - 在其他语言中是否有 Ruby 的 method_missing 等价物?
在 Ruby 中,对象有一个方便的方法被调用method_missing
,它允许处理甚至没有(显式)定义的方法的方法调用:
当 obj 收到无法处理的消息时由 Ruby 调用。symbol 是被调用方法的符号,args 是传递给它的任何参数。默认情况下,调用此方法时,解释器会引发错误。但是,可以覆盖该方法以提供更多动态行为。下面的示例创建了一个 Roman 类,它响应名称由罗马数字组成的方法,并返回相应的整数值。
例如,Ruby on Rails 使用它来允许调用诸如find_by_my_column_name
.
我的问题是,还有哪些其他语言支持等价于method_missing
,以及如何在代码中实现等价物?
ruby-on-rails - 在没有 method_missing 的情况下使用 Rails 获得 SEO 友好的 URL?
目前,我们正在使用 method_missing 在我们的控制器中捕获对 SEO 友好操作的调用,而不是为变量的每个可能值创建操作。我们想要的是这样的 URL:
/学生/鲍勃史密斯
而不是 /students/show/342
有比 method_missing 更清洁的解决方案吗?
谢谢!
scala - scala中是否有method_missing?
类似于 Ruby 中的那个
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?
情况,但是当我尝试在另一个关联中引用的用户上调用它时失败:
是什么赋予了?
powershell - powershell 有 method_missing() 吗?
我一直在玩 powershell 的动态能力,我想知道一些事情
powershell 中是否有任何类似于 Ruby 的 method_missing() 的东西,您可以在其中设置“捕获所有方法”来动态处理对对象上不存在的方法的调用?
php - PHP中的全局“method_missing”?
可能重复:
魔术函数 __call() 函数?
我可以实现 __call() 以在 PHP 类中提供 method_missing 行为。有没有办法在全局范围内提供相同的功能?
我想要这样的东西:
输出:
ruby - Ruby:在 method_missing 中找出方法类型的最佳方法是什么?
目前我有这个代码:
但这似乎不是最好的解决方案=\
任何想法如何使它更好?谢谢。
ruby - 是什么阻止了静态类型语言拥有像 Ruby 的 method_missing 之类的东西?
我对静态类型语言没有太多经验(目前正在学习 Scala 并喜欢它!)但我注意到的一件事是,它们似乎从来没有像 Ruby 的 method_missing 或 ColdFusion 的 onMissingMethod 这样的东西。静态类型语言是否存在一些固有的限制来阻止或使其变得困难?
ruby-on-rails - method_missing 的多个参数
我method_missing
在模型中实现了以下代码:
$CLIENT
是一个全局对象。请注意,这是method_missing
针对类,而不是实例。
我在脚本/控制台中尝试了以下内容:
我在这里遗漏了一些非常明显的东西吗?我在 Rails 2.3.8 和 jRuby 上运行它,如果这有什么不同的话。
编辑:这让我更加困惑:
用 Integer 以外的其他参数替换第二个参数似乎可行,但当然该参数应该是一个 Integer ...我现在怀疑 jRuby 或我集成到其中的 Java 类中存在问题。