ruby-on-rails - 如果我们将参数缓存到操作中的本地变量中,它会有所帮助还是相同?

标签 ruby-on-rails ruby parameters reek

因此我们运行一个名为 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/

相关文章:

ruby-on-rails - 使用表单重定向

html - Rails 5.1 CSS 背景图像 ID 未加载?

ruby-on-rails - 如何在 Rails 中的服务器中保存生成的 pdf

java - 有多个可选参数

ruby - 将 splat 参数从一种方法传递到另一种方法

ruby-on-rails - 使用 Thinking Sphinx 并保持干燥(不要重复自己)

ruby-on-rails - 有_许多 :through association error 'could not find the source association'

Ruby 单元测试技术,Mocking 和 Stubbing

ruby-on-rails - 为 Rails 上的连接、限制、选择等(不是条件)的 SQL 片段安全地转义字符串

php - 参数号无效 : parameter was not defined in {path}