Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 正在分析要添加到URL编码URL的字符串_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 正在分析要添加到URL编码URL的字符串

Ruby on rails 正在分析要添加到URL编码URL的字符串,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,给定字符串: "Hello there world" 如何创建URL编码的字符串,如下所示: "Hello%20there%20world" 我还想知道如果字符串也有其他符号,该怎么办,例如: "hello there: world, how are you" 最简单的方法是什么?我打算对此进行解析,然后构建一些代码。2019年,URI.encode已经过时,不应该使用 Ruby在这方面很有用。您可以通过编程方式构建整个URL,并使用该类添加查询参数,它将为您处理编码: require

给定字符串:

"Hello there world"
如何创建URL编码的字符串,如下所示:

"Hello%20there%20world"
我还想知道如果字符串也有其他符号,该怎么办,例如:

"hello there: world, how are you"

最简单的方法是什么?我打算对此进行解析,然后构建一些代码。

2019年,URI.encode已经过时,不应该使用


Ruby在这方面很有用。您可以通过编程方式构建整个URL,并使用该类添加查询参数,它将为您处理编码:

require 'uri'

uri = URI.parse('http://foo.com')
uri.query = URI.encode_www_form(
  's' => "Hello there world"
)
uri.to_s # => "http://foo.com?s=Hello+there+world"
这些例子很有用:

URI.encode_www_form([["q", "ruby"], ["lang", "en"]])
#=> "q=ruby&lang=en"
URI.encode_www_form("q" => "ruby", "lang" => "en")
#=> "q=ruby&lang=en"
URI.encode_www_form("q" => ["ruby", "perl"], "lang" => "en")
#=> "q=ruby&q=perl&lang=en"
URI.encode_www_form([["q", "ruby"], ["q", "perl"], ["lang", "en"]])
#=> "q=ruby&q=perl&lang=en"
这些链接也可能有用:

  • 来自W3的“HTML文档中的表单”建议

如果有人感兴趣,最新的方法是在雇员再培训局:

    <%= u "Hello World !" %>

这将导致:

您好%20World%20%21

uurl\u encode的缩写


您可以找到文档

,而当前的答案是使用自Ruby 1.9.2以来就被弃用和过时的
URI.encode
。最好使用
CGI.escape
ERB::Util.url\u encode

如何将require'uri'嵌入html.ERB?或者我必须把它放在控制器里吗?正确的做法是,在任何时候,只要需要更多的琐碎逻辑,就在控制器里进行所有的“计算”。酷。我们什么时候应该使用助手?如果我们进行的计算将在助手中的许多地方使用,并且包括控制器,那会怎么样呢。这有关系吗?如果您还想编码点:
URI.encode('api.example.com',/\W/)
不起作用,例如
URI.encode('http://google.com") => "http://google.com“
。更好地使用
CGI.escape
“https%3A%2F%2Fgoogle.com”
    <%= u "Hello World !" %>