1
我現在有這在我的ApplicationController如何在rails中動態創建named_route?
def account_path
eval "#{current_user.type.downcase}_account_path"
end
我用它重定向等,但我也想用它在視圖(的link_to的等)。在控制器和視圖之間共享代碼以保持它即使干擾MVC也是合理的嗎?
我現在有這在我的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