rails,如何从url字符串获取params?

el_*_*ick 4 ruby url ruby-on-rails params ruby-on-rails-3

可能重复:
如何在Rails测试中使用参数轻松解析URL?

对不起我的英语不好...

我在我的archives.rb模型中获取了一个从html内容中获取所有src属性的方法,我得到src的样子:

http://localhost:3000/es/editor/archives/28/show_image?x=142&y=142

我需要从该URL获取params,具体来说:id,x,y

感谢和问候.

DGM*_*DGM 17

正确的做法:

url = "http://localhost:3000/es/editor/archives/28/show_image?x=142&y=142"
uri = URI::parse(url)
id = uri.path.split('/')[4]
params = CGI::parse(uri.query)
Run Code Online (Sandbox Code Playgroud)


Boh*_*dan -21

例如,可以使用一些正则表达式来完成

irb(main):011:0> s = "http://localhost:3000/es/editor/archives/28/show_image?x=142&y=142"
=> "http://localhost:3000/es/editor/archives/28/show_image?x=142&y=142"
irb(main):012:0> s[/.*\/(\d+).+x=(\d+).*y=(\d+)/,1]
=> "28"
irb(main):013:0> s[/.*\/(\d+).+x=(\d+).*y=(\d+)/,2]
=> "142"
irb(main):014:0> s[/.*\/(\d+).+x=(\d+).*y=(\d+)/,3]
=> "142"
irb(main):015:0>
Run Code Online (Sandbox Code Playgroud)

  • 有很多方法可能会失败。当强大的解析器已经存在时,我们不要使用片状正则表达式。 (2认同)