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 也是不错的选择。