2016-02-28 41 views
2

在Rails 4.2.5,在应用程序/配置/ application.rb中,我发现这段代码在文件的顶部:为什么不application.rb使用require_relative()?

require File.expand_path('../boot', __FILE__) 

Q1:这难道不是一样的吗? :

require_relative('boot') 

Q2:如果这两个都一样没有任何人有,为什么Rails使用原代码中的任何想法,而不是后者?看起来代码的后一位更短更清晰,因此更可取。

回答

1

伟大的问题。这可能仅仅是Rails支持Ruby 1.8.7时的延续,因为直到Ruby 1.9才引入require_relative。但是自从1.8.7支持在Rails 4.0中被抛弃后,没有理由不使用require_relative。我的猜测是,在这几年间没有人想过要改变它,因为它是按原样运作的。另外,我不确定让Rails代码库更清晰和更容易理解是Rails核心团队的首要任务。