[英]Rails.root with Dir
我似乎看到很多人使用Rails.root
和Dir[]
示例: Dir[Rails.root.join('app', '*')
然而,这似乎是不必要的,因为在功能上,它看起来像Dir['app/*]
做完全相同的事情(我个人更喜欢Dir['app/*']
不是Dir[Rails.root.join('app', '*']
)。
我想知道是否有任何理由将Rails.root
与Dir
一起使用,或者不使用Rails.root
是否可以?
谢谢!!
任何时候Dir.chdir
被调用(这可能在你没有意识到的情况下发生),它会改变假定的根。 当Rails.root
与Dir
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.