gpt4 book ai didi

ruby-on-rails - Rails 找不到包含左方括号的文件

转载 作者:行者123 更新时间:2023-12-03 20:45:20 27 4
gpt4 key购买 nike

这是我在 stackoverflow 上的第一个问题。我正在构建一个基于 JPlayer 的播放列表和 Rails 的简单音乐流媒体。基本上我将我的 mp3 复制到根目录中,然后按艺术家索引文件。然后我使用 JQuery 自动完成来搜索艺术家,并为该艺术家生成一个播放列表,返回一个带有 mp3 的 JSon 数组。除非目录或文件包含左方括号,否则一切正常。

开始 GET "/music/[hello.mp3"for 127.0.0.1 at Mon Nov 07 11:48:09 +0100 2011ActionController::RoutingError(没有路由匹配[GET]“/music/[hello.mp3”):

/music/hello.mp3 一切正常

无论是否使用符号链接(symbolic link),我都可以重现错误,并且只能使用 [,但不能使用 ]。我已经尝试使用\[ 或\\[ 进行转义。它不能解决问题。我使用的是 Rails 3.1.1、Ruby 1.8.7。

index.js.erb 包含

new jPlayerPlaylist({
jPlayer: "#jquery_jplayer_1",
cssSelectorAncestor: "#jp_container_1"
}, [
<%= @titles.html_safe %>
], {
supplied: "mp3",
wmode: "window"
});

@titles 包含

{
title:"1 - hello",
mp3:"music/[hello.mp3"
},
{
title:"2 - goodbye",
mp3:"music/[goodbye.mp3"
}

谁能帮帮我?谢谢

最佳答案

在文件的字符串上使用CGI.escape 来转义敏感元素。 (RDoc:http://www.ruby-doc.org/stdlib-1.8.7/libdoc/cgi/rdoc/CGI.html#method-c-escape)

CGI.escape('music/[hello.mp3')
=> "music%2F%5Bhello.mp3"

关于ruby-on-rails - Rails 找不到包含左方括号的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8035434/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com