.agency{style: "background-image: url(#{image_path "transport-logos/#{service.agency_name}.png"})"}

When service.agency_name contains spaces, I get invalid resource names, such as transport-logos/some name.png instead of transport-logos/some%20name.png.

How do I convert spaces to %20 in HAML?

有帮助吗?

解决方案

Using

URI.encode("some name")

will give some%20name

Change your code as below,

.agency{style: "background-image: url(#{image_path "transport-logos/#{URI.encode(service.agency_name)}.png"})"}

其他提示

Use the CGI.escape method

.agency{style: "background-image: url(#{image_path "transport-logos/#{CGI.escape(service.agency_name)}.png"})"}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top