Ответ 1
Вы можете вызвать to_query
на Hash в рельсах, который позаботится о кодировке url и т.д. Так что может быть что-то вроде этого:
params = {
:a => "http://google.com",
:b => 123
}
url = "http://example.com?#{params.to_query}"
Я делаю Tweet Это ссылка в Rails. URL-адрес, который мне нужно создать, выглядит примерно так:
http://twitter.com/share?url=http%3A%2F%2Fexample.com&text=Hello%20World
но немного сложнее. В основном URL с загрузкой параметров GET
Было бы неплохо использовать один из помощников Rails, чтобы сгенерировать эту ссылку, например:
url_for("http://twitter.com/share", :url => "http://example.com", :text => "Hello world")
Но я не нашел ничего, что сработает. У кого-нибудь есть идеи?
Вы можете вызвать to_query
на Hash в рельсах, который позаботится о кодировке url и т.д. Так что может быть что-то вроде этого:
params = {
:a => "http://google.com",
:b => 123
}
url = "http://example.com?#{params.to_query}"
Написание собственного помощника для этого было бы одной простой строкой кода:
def twitter_url_for(url, text)
link_to "Share this url", "http://twitter.com/share?url=#{url}&text=#{text}"
end
Мне нравится ответ Брайана. Здесь он находится в форме метода, если кто-то еще сталкивается с этим.
def url_with_attributes_from_hash(url = "", attr_hash = {})
url == "" or attr_hash == {} ? "#{url.to_s}" : "#{url.to_s}?#{attr_hash.to_query}"
end