s3上的paperclip document.url中的百分比编码问题

时间:2014-12-10 21:41:03

标签: ruby-on-rails ruby amazon-web-services amazon-s3 paperclip

我刚刚升级了我的宝石,回形针网址现已正确编码,%3F用于亚马逊喜欢使用的?。但是,这会在执行以下操作时中断用户的链接:

<a href="<%= client.document.url %>">Link</a>

现在我手动用%?替换%3F?通过使用gsub,我想知道我的代码中是否有错误,而不是在宝石或亚马逊方面。我的修复:

<%= client.document.url.gsub(/%3F/, "?") %>

还有其他我可以做或应该知道的事情吗?

2 个答案:

答案 0 :(得分:3)

使用URI.unescape

<%= URI.unescape(client.document.url) %>

答案 1 :(得分:2)

这是Paperclip 4.2.1中的一个已知错误(请参阅问题#1706#1732) - 网址中的?会在不应该转义为%3F时转移到gem 'paperclip', '4.2.0'

选项是将Paperclip固定到版本4.2.0(# config/initializers/paperclip.rb Paperclip::Attachment.default_options[:use_timestamp] = false ),或暂时禁用网址的时间戳:

{
    "NBanios": 5,
    "NHabitaciones": 4,
    "antiguedad": "asd",
    "anuncioInmueble": {
        "cp": "31927",
        "descripcion": "la casa falete",
        "direccion": "pocillogilvan",
        "idInmueble": 1,
        "latitud": -7.12367,
        "longitud": 41.36360142022258,
        "numero": "2",
        "planta": "3",
        "precio": 13.4,
        "superficie": 5000,
        "tipoAnuncio": "venta"
    },
    "certificado": 3,
    "conservacion": "asd",
    "idInmueble": 1,
    "orientacion": "asd",
    "tipoVivienda": "asd"
}

该错误由this commit引入。