如何在rails中动态创建named_route?
问题描述:
我现在有这在我的ApplicationController如何在rails中动态创建named_route?
def account_path
eval "#{current_user.type.downcase}_account_path"
end
我用它重定向等,但我也想用它在视图(的link_to的等)。在控制器和视图之间共享代码以保持它即使干扰MVC也是合理的吗?
答
是的,我会说这是一个合法的重用。 helper_method
电话是有这个原因,所以:
helper_method :account_path
也将使您的意见也可用。
如果你不喜欢使用eval
你可以这样做:
def account_path
self.send("#{current_user.type.downcase}_account_path")
end
为_path
方法被解释为控制器上的方法。
是的 - 好主意。使用.send也可能更安全一些。 – 2010-08-23 18:30:18