3

我正在尝试评估为不安全代码评估而设计的类中的路由帮助器字符串。基本上我有一个类 SafeEval 它将评估沙盒类中的字符串。我做了以下工作以使路线助手在 SafeEval 中工作

include ActionController::UrlFor
include Rails.application.routes.url_helpers

所有 ruote 助手都在工作,除了引擎路由代理。在我的视图和控制器中,我可以调用 blog.page_path(@page) 但我不能在 SafeEval 中调用 blog.page_path - 我没有定义博客。我查看了我的视图,博客是 RouteProxy。

所以我的问题是如何在视图/控制器之外的类中获取引擎路由代理

(SafeEvla 不做很多沙盒。你可以假设一个非常简单的结构:一个现在只在 SafeEval 类中运行 eval(str) 的方法。)

4

1 回答 1

3

我认为在您的班级中包含已安装的助手可以解决问题:

include Rails.application.routes.mounted_helpers
于 2018-11-23T08:31:07.063 回答