Я думал, что Rails сделает это для вас.Но если вам нужно сделать это вручную, вы можете использовать CGI :: escape, например,
> require 'cgi'
...
> CGI.escape("hello%there\nworld")
=> "hello%25there%0Aworld"
РЕДАКТИРОВАТЬ: На самом деле, CGI, кажется, не экранирует точку.Вместо этого можно использовать URI, он принимает дополнительный параметр, который позволяет вам перечислить дополнительные символы, которые вы хотите экранировать:
URI.escape("hello.there%world", ".")