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)
问题是,使用第一个斜杠时,public您正在引用public位于 中的文件夹/,而不是项目所在的相对路径中的文件夹。
删除第一个斜杠可能会给您预期的输出:
Rails.root.join('public/files')
Run Code Online (Sandbox Code Playgroud)