2015-02-08 46 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