【发布时间】:2026-02-02 22:05:01
【问题描述】:
使用 Rails,我最初是在寻找一种在模型中使用资源路径辅助方法(例如 users_path)的方法,而 this 给了我答案:我可以使用 Rails.application.routes.url_helpers.users_path。
很好,但总的来说,特别是在 Rails 中,如何找到一个方法来自哪个模块/类?阅读源代码或一些官方文档是找到它的唯一方法吗?是不是可以例如直接在调试控制台中签入从users_path获取Rails.application.routes.url_helpers?
【问题讨论】:
-
Ruby 中没有“命名空间”之类的东西。你的问题不清楚。 “命名空间”是什么意思? “来自”是什么意思?您是在询问定义该方法的模块吗?还是定义它的脚本位置?
-
已编辑。现在没有命名空间了。
-
澄清后,您的问题与*.com/q/69149392/2988、*.com/a/9003022/2988、*.com/a/7247156/2988 和许多其他问题重复。
-
在我看来,您对定义方法的位置不感兴趣,而是对可以调用该方法的对象感兴趣。在您的示例中,
users_path是由元编程定义的,因此您根本不会在代码中找到具有该方法名称的方法定义。但是可以在控制器和视图的上下文中在Rails.application.routes.url_helpers上调用该方法。 -
@spickermann 另外可能有多个这样的对象。您必须确定与当前自我“最接近”的那个。
标签: ruby-on-rails ruby