我想知道如何找到并使用帮助器方法,当我以字符串格式获得帮助程序的名称时。
我正在编写引擎,在初始化文件中,用户可以指定current_user_helper:
MyEngine.current_user_helper = "current_user"
我想在控制器中做一些事情。例如,下面的代码尝试为登录用户创建一个帖子。
MyEngine.current_user_helper.posts.new(post_params)
然而,此代码不起作用,因为MyEngine.current_user_helper
是一个字符串。显然,当我尝试时,Rails会抛出错误:
MyEngine.current_user_helper = current_user
没有引号。
有什么建议吗?
答案 0 :(得分:1)
您可以使用send
从字符串或符号调用方法。 send
可用于Object的所有后代。
send(MyEngine.current_user_helper).posts.new