因此我们运行一个名为 reek 的代码质量工具偶尔作为我们项目的一部分。该工具主要寻找代码异味并报告它们。在这里,我们观察到,每次我们尝试多次访问 params 中的键时,我们都会收到“重复”气味(就好像我们使用相同的参数进行两次方法调用,或者我们正在复制一个如果条件等)。但是,params
只是一个Hash
,对吧?当其他哈希的 key 被多次访问时,不会出现重复的味道。
为什么会这样呢? params
到底是什么?将 params 缓存在局部变量中然后使用它们是否有意义?会有帮助还是一样?还是工具有问题?救命!
最佳答案
在当前版本中,最好仅在您的 app/models 文件夹上运行 Reek,因为它会引发针对 View 和 Controller 的误报。
params是一种接近系统边界的DTO(数据传输对象),因此它的特性应该与常规代码不同。但臭佬(还)还不知道这一点。我计划在不久的将来改进 Reek,以便它能更好地与 Rails 配合使用。但就目前而言,您最好的选择是将其限制为查看应用程序/模型(也许还有应用程序/帮助程序和库)。
关于ruby-on-rails - 如果我们将参数缓存到操作中的本地变量中,它会有所帮助还是相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1164472/