几天前我被聘用来更新Rails 4应用程序。一般来说,rspecs和代码看起来不错,但是在某个控制器的顶部找到了这一行:
std::vector::resize
在网上搜索,我发现该行是一种通过ActionView :: Base类的新实例从控制器内的助手加载方法的方法。我的意思是,这是一种方法,而不是经典:
delegate :edit_app_path, :new_app_payment_path, to: :view_context
在控制器中。我的问题是:这真的是一个好习惯吗?是比较快的?如果我使用经典的“include MyHelper”,AFAIK, view_context 将加载一个新的类,其中包含 all 帮助程序和视图的所有上下文,而不是一个帮助程序。顺便说一下,:edit_app_path 和:new_app_payment_path 方法在同一个帮手中。
我应该删除该线路吗?
答案 0 :(得分:1)
使用view_context
允许控制器幸福地不知道路径的定义位置。如果将来重构辅助文件结构,控制器将继续哼唱而不需要更改。
性能方面,我怀疑影响会很大,因为所有代码都已加载。 Rails(和Ruby标准库)一直在创建新对象。