繁体   English   中英

Rails.root 与目录

[英]Rails.root with Dir

我似乎看到很多人使用Rails.rootDir[]

示例: Dir[Rails.root.join('app', '*')

然而,这似乎是不必要的,因为在功能上,它看起来像Dir['app/*]做完全相同的事情(我个人更喜欢Dir['app/*']不是Dir[Rails.root.join('app', '*'] )。

我想知道是否有任何理由将Rails.rootDir一起使用,或者不使用Rails.root是否可以?

谢谢!!

任何时候Dir.chdir被调用(这可能在你没有意识到的情况下发生),它会改变假定的根。 Rails.rootDir Rails.root使用时,响应保持一致(这是您想要的)。 但是,当使用'app'时,响应不一致,这将导致您的代码出现问题。

您可以通过复制/粘贴以下文本来玩弄:

# copy / paste this into your rails console and view the results
def test
  puts 'start:'
  puts Dir[Rails.root.join('app')]
  puts Dir['app']
  Dir.chdir('app') do 
    puts nil
    puts 'note that Rails.root does not change but app does:'
    puts Dir[Rails.root.join('app')]
    puts Dir['app']
  end
  puts nil
  puts 'back:'
  puts Dir[Rails.root.join('app')]
  puts Dir['app']
end
test

更多信息可以在这里找到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM