问题标签 [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 投票
1 回答
519 浏览

ruby - Ruby 中的 method_missing 可见性

method_missing出现在 中Object.private_methods,而不出现在 中Object.public_methods

但是,当我打电话时Object.method_missing :stupidmethod,我得到

我希望得到

因为这就是我尝试调用其他私有方法时得到Object的,例如.Object.chop

作为更多证据,如果我Object.method_missing在没有争论的情况下打电话,我会得到

所以看起来我真的是method_missing从它的对象之外调用那个“私有”函数。你能解释一下吗?


编辑:感谢评论中的尤金。 ruby --version告诉我 1.8.7。此外,irb --version是 0.9.5(05/04/13)。很高兴知道这在以后的版本中表现得如我所料。

0 投票
1 回答
1002 浏览

ruby-on-rails - “method_missing”:未定义的局部变量或方法“has_ancestry”

我正在关注本教程(http://www.tweetegy.com/2013/04/create-nested-comments-in-rails-using-ancestry-gem/),了解如何为嵌套评论设置 Ancestry gem。当我在普通的 Rails 应用程序上运行本教程时,它工作正常。当我尝试将评论系统分离到引擎中时,我的问题就出现了。以下是我拥有的模型:

在发动机

在主应用程序中

如果我删除has_ancestry,我可以访问评论就好了。就像我在第一个应用程序中所做的那样,我已经按照教程进行操作,但是由于某种原因,当我在这个应用程序上运行 Article.first.comments 时,我得到了方法丢失错误。如果我需要提供更多信息以获得帮助,请告诉我。谢谢你。

0 投票
3 回答
439 浏览

syntax - 是否可以在 Lua 中复制 Ruby 的 method_missing?

我相当确定在 Lua 中,您可以使用给定的元表__index, __newindex, 并__call大致复制 Ruby 的method_missing. 我有点:

我的问题是:虽然语法相似,我当然可以使用它来复制功能,但它引入了一个破坏性错误。您在应用 a 的表的上下文中使用的每一个变量method_missing都永远不会为零,因为我必须返回一个可以调用的对象,以便pass the buck从索引函数到实际调用的潜在调用。

即如上所述定义全局method_missing后,尝试调用未定义的方法'test_print'按预期运行,但索引时test_print的值是非nil,其他没有响应的方法/变量,如this_should_be_nil非nil .

那么有没有可能避免这个陷阱呢?或者在不修改语言源本身的情况下可以不弯曲语法来支持这种修改吗?我想困难出现在 Ruby 中,索引和调用是相似的,而在 Lua 中它们是不同的。

0 投票
2 回答
609 浏览

ruby - 在 Ruby 中执行 method_missing 中的 &block

我刚刚开始学习块并method_missing在 Ruby 类中使​​用,我注意到一般公式是

我的问题是是否可以&block在输出中执行。例如:

有没有办法让这个工作块返回一个新数组?

0 投票
1 回答
713 浏览

java - 缺少 Slick2D 方法

我正在使用 Slick2D 编写一个小游戏,经过很长时间的研究,我改变了主意,决定我确实希望游戏可以调整大小。所以我尝试使用 app.setResizable() 命令,正如 Slick2D wiki 上所建议的那样(以及这里:如何使 slick2d 可调整大小)。但是我的eclipse就是没找到那个方法,于是又上网查了一下,发现所有和resize相关的属性和方法都不见了(比如wasResized()、isResized()、setResizable()等) . 我有最新版本的 Slick2D 和 eclipse,可能答案很明显,但我一直在寻找几个小时,却找不到。

谢谢你的帮助。

0 投票
2 回答
385 浏览

ruby-on-rails - Rails Method Missing - 如何获得“其他”案例的回溯?

我有一个模型,它引用和实例变量是另一个类的实例。我想将缺少的方法委托给该变量,如下所示:

但是,在 @other_class_instance 没有响应的情况下,我希望应用程序终止并像正常的 NoMethodError 一样获得完整的回溯。相反,我只收到一行错误消息,例如:

我在几个地方读到过,如果 super 不存在,它会弄乱 Ruby 的方法查找。

我错过了什么,所以如果other_class_instance不响应该方法,它会表现得好像没有method_missing创建任何方法?

更新

Logan 的回答在 OtherInstance 类也没有method_missing定义的情况下解决了这个问题。如果确实如此(比如 Rails 模型),您可以执行以下操作:

0 投票
4 回答
1147 浏览

java - 如何找到给定类的罐子

我因缺少类“org.apache.xerces.impl.XMLDocumentFragmentScannerImpl”而出错。这是一个新的项目设置,没有使用 maven 或其他工具来管理依赖项。我想忘记包含一些jar,如何找到自己的XMLDocumentFragmentScannerImpl 的jar?

0 投票
1 回答
434 浏览

ruby - 使用 method_missing 进行 Ruby 元编程以制作 HTML DSL

我正在学习元编程,并正在尝试制作一些 DSL 来生成 HTML。@result实例变量没有生成正确的答案,因为在调用h1方法时,@result实例变量被重置。有没有一种优雅的方式来处理这些“嵌套”方法调用(我知道Ruby 在技术上没有嵌套方法)。这是我的代码:

0 投票
1 回答
82 浏览

ruby - 为什么某些未定义的方法(例如 Foo)没有被 `method_missing` 捕获?

我试图通过以下定义捕获未定义的方法:

当我编写一个未定义的方法时,例如foo在它之后,它被捕获method_missing

但是当我编写一个未定义的方法时Foo,它不会被捕获method_missing

看起来如果它与一个常数消除歧义,那么它就会被捕获:

为什么Foo没有在第一种情况下被捕获?当方法在局部变量之间不明确时,它是否会被捕获method_missing,但在常量之间不明确时不会被捕获?如果是这样,是否有这方面的文档?或者,这是一个错误?

0 投票
0 回答
89 浏览

python - 等效于全局范围内的 Rubys method_missing

我最近做了一些元编程,发现在 Ruby 中要容易得多,主要是因为 Ruby 中的主要上下文是一个对象,我可以覆盖它的 method_missing。

现在,Python 中有几个结构可以模拟 CLASSES 中的行为(例如,使用__getattr__()然后适当地处理它),但这并不适用于全球范围。

我想要实现的是类似于作者通过将“ _ ”解码为 Ruby 函数来使其成为有效的 Ruby 脚本的地方。如果您知道每次解释器不知道方法时,这当然很容易,他只是退回到您创建的方法中。

你可以很容易地在 Python 中模拟它:

但这有点笨拙,如果您只需要包含模块而不做任何其他事情,那会容易得多。我知道那将是相当非 Python 的,但我很好奇在不弄乱 Python 解释器本身的情况下是否有可能。

有谁知道允许这种行为的构造?

问候,卡森