2013-12-11 46 views
1

绝对路径我想要的是/Users/Hsu-Wei-Cheng/Dropbox/Rails/zeus/public/uploads/local_display_multi_lang/xml/8/results.zip的Rails.root.join将错过在某些条件下,Rails.root路径

/uploads/local_display_multi_lang/xml/8/results.zip存储在local_display_multi_lang.result

于是,我就用Rails.root.join方法获取我系统中的绝对路径。

通过Rails.root.join("public", local_display_multi_lang.result.to_s)

但它没有工作,我得到了:/uploads/local_display_multi_lang/xml/8/results.zip

什么错误我犯了?谢谢

[3] pry(#<#<Class:0x007fe7ae84f038>>)> Rails.root.join("public", local_display_multi_lang.result.to_s) 
=> #<Pathname:/uploads/local_display_multi_lang/xml/8/results.zip> 
[4] pry(#<#<Class:0x007fe7ae84f038>>)> Rails.root 
=> #<Pathname:/Users/Hsu-Wei-Cheng/Dropbox/Rails/zeus> 
[5] pry(#<#<Class:0x007fe7ae84f038>>)> local_display_multi_lang.result.to_s 
=> "/uploads/local_display_multi_lang/xml/8/results.zip" 
[6] pry(#<#<Class:0x007fe7ae84f038>>)> Rails.root.join("public") 
=> #<Pathname:/Users/Hsu-Wei-Cheng/Dropbox/Rails/zeus/public> 
[7] pry(#<#<Class:0x007fe7ae84f038>>)> local_display_multi_lang.result.to_s 
=> "/uploads/local_display_multi_lang/xml/8/results.zip" 
[8] pry(#<#<Class:0x007fe7ae84f038>>)> Rails.root.join("public", local_display_multi_lang.result.to_s) 
=> #<Pathname:/uploads/local_display_multi_lang/xml/8/results.zip> 
[9] pry(#<#<Class:0x007fe7ae84f038>>)> Rails.root.join("public", local_display_multi_lang.result) 
=> #<Pathname:/uploads/local_display_multi_lang/xml/8/results.zip> 

回答

1

因为local_display_multi_lang.result.to_s是绝对路径。

尝试

Rails.root.join("public", local_display_multi_lang.result.to_s[1..-1]) 
+0

谢谢,但现在我有一些绝对路径一些相对路径。有没有内建函数可以修复? – newBike