Rails:当指向" tmp / caching-dev.txt"时,Rails.root.join的正确用法是什么?

时间:2017-11-09 11:24:04

标签: ruby-on-rails ruby rubocop

我正在设置一个新的Rails项目,在给Rubocop初步整理之后,我只剩下一次冒犯。

鲁波普抱怨道:

config/environments/development.rb:16:6: C: Please use Rails.root.join('path', 'to') instead.
  if Rails.root.join("tmp/caching-dev.txt").exist?

我看到Rails.root返回当前项目的路径。所以我试过了

if File.join(Rails.root, "tmp/caching-dev.text").exist?

代替。但是,Rubocop抱怨道:

config/environments/development.rb:17:6: C: Please use Rails.root.join('path', 'to') instead.
  if File.join(Rails.root, "tmp/caching-dev.text").exist?
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

pathroot参数是什么意思?当然Rails.root是路径?!

3 个答案:

答案 0 :(得分:6)

我认为Rubocop建议你这样的事情

if File.exist?(Rails.root.join('tmp', 'caching-dev.txt'))

答案 1 :(得分:0)

IMHO,路径名和/的使用不够。

if (Rails.root / 'tmp' / 'caching-dev.txt').exist?

答案 2 :(得分:0)

我通过配置 .rubocop.yml 解决了问题:

样式/扩展路径参数: EnforcedStyle:样式/ExpandPathArguments 启用:false