link_to 名称中包含空格的文件

link_to file with whitespaces in name

如果文件名中有空格,我应该如何 link 到 Rails public 文件夹中的文件? 即:

<%=link_to 'Download my file', root_url + "files/my file.zip"%>

只需在 config/routes.rb 中指定路由(使用自己的控制器和操作):

get '/*path', as: :file, controller: :main, action: :file

并建立链接使用 file_urlfile_path 助手:

file_path(path: 'files/my file.zip')

它将 return:

/files/my%20file.zip

您可以使用 URI.escape 它会为您转义字符串。

URI.escape("files/my file.zip")
=> "files/my%20file.zip"