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

时间:2011-08-10 14:58:59

标签: ruby-on-rails ruby ruby-on-rails-3 url params

  

可能重复:
  How do I easily parse a URL with parameters in a Rails test?

抱歉我的英语......

我的archives.rb模型中有一个从html内容中获取所有src属性的方法,我得到的结果如下:

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

我需要从该网址获取参数,具体为: id,x,y

谢谢, 问候。

3 个答案:

答案 0 :(得分:15)

正确方法:

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)

答案 1 :(得分:1)

在你的控制器中你可以做'params [:x]'和'params [:y]'。例如:

x = params[:x]
y = params[:y]

答案 2 :(得分:-18)

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

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>
相关问题