Rails.root 显示正确的路径,但 Rails.root.join 未显示正确的路径

yu-*_*der 2 ruby ruby-on-rails

Rails.root工作但Rails.root.join没有按预期工作。

puts Rails.root # /work/project

src_dir = "/public/files" 
puts Rails.root.join(src_dir) 
# expected: /work/project/public/files
# showing: /public/files
Run Code Online (Sandbox Code Playgroud)

Seb*_*lma 5

问题是,使用第一个斜杠时,public您正在引用public位于 中的文件夹/,而不是项目所在的相对路径中的文件夹。

删除第一个斜杠可能会给您预期的输出:

Rails.root.join('public/files')
Run Code Online (Sandbox Code Playgroud)