Rails - 使用别名从模型或帮助程序中调用方法

时间:2017-09-14 12:46:53

标签: ruby-on-rails ruby

我有一个名为GlobalHelper的帮手。

其中有几个常量(例如GLOBAL_URL)和方法(例如self.get_url)。

我试图在C(#define URL)中创建别名或等效的宏来轻松地从我的任何视图和控制器访问常量和方法。

现在我必须这样做:

GlobalHelper.get_url(GlobalHelper::URL_TYPE_PAGE, ["page1"])

我想用别名/宏来摆脱GlobalHelper到处取代这样的代码:

aliasmethod(aliasconstant, ["page1"])

我该怎么做?

1 个答案:

答案 0 :(得分:0)

ruby​​不是c,因此在尝试将这些概念引入项目之前,您应该先了解如何编写ideomatic ruby​​代码。

因为我不知道你的get_url方法究竟是什么,所以我只能给出有限的建议。

可能会产生更好代码的一件事是使用符号而不是常量:

GlobalHelper.get_url(:page, ["page1"])

使用Module代替Class时,您可以将其包含在内并直接调用该方法:

include GlobalHelper
get_url(...)

这些只是可以做的事情的例子。并不是说这比直接明确调用GlobalHelper更好。这完全没有错。