2015-02-08 71 views
0

我想知道如何查找和使用帮助器方法,当我有一个字符串格式的帮助器的名称。如何查找和使用字符串帮助器方法

我写的引擎,并在初始化文件,用户可以为这样的指定current_user_helper:

MyEngine.current_user_helper = "current_user" 

我愿做这个事情在控制器中。例如,下面的代码尝试为登录用户创建一个Post。

MyEngine.current_user_helper.posts.new(post_params) 

但是,此代码不起作用,因为MyEngine.current_user_helper是一个字符串。显然,当我尝试时,Rails会抛出一个错误:

MyEngine.current_user_helper = current_user 

没有引号。

有什么建议吗?

回答

1

您可以使用send从字符串或符号调用方法。对象的所有后代都可以使用send

send(MyEngine.current_user_helper).posts.new

+0

这是非常有用的。我打电话给'发送'?如果我在控制器中这样做,它是否是控制器本身,并且是Object的后代? – 2015-02-08 05:06:36