http://galeki.isprogrammer.com/posts/21008.html

Rails.root  "+"

Rails3 中 RAILS_ROOT RAILS_ENV 这些常量已经消失,转变为比较美观的 Rails.root 和 Rails.env 这样的形式。

不过 Rails.root 不再是个字符串,而是个 Pathname 的对象,大部分情况下和字符串没有区别,比如可以像原来那样拼接:

?

1

"#{Rails.root}/public/images"

但是用相加(+)这个方法的话会出现一些问题:

?

1

2

3

4

5

> Rails.root + "public"

=> #<Pathname:/Users/galeki/works/chito/public>

> Rails.root + "/public"

=> #<Pathname:/public>

就是说如果和一个绝对路径的字符串相加的话,结果直接就变成绝对路径了,所以还是用 #{ } 来组合目录吧,用 File.join 也是不错的选择。

原文地址:https://www.cnblogs.com/lexus/p/1913322.html