可能是重复问题:
如何在Rails测试中轻松解析带有参数的URL?
抱歉我的英语不好...
在我的archives.rb模型中,我有一个方法可以从HTML内容中获取所有src属性,我获取到的src如下:
http://localhost:3000/es/editor/archives/28/show_image?x=142&y=142
我需要从该URL获取参数,具体而言是:id、x、y
谢谢, 问候。
可能是重复问题:
如何在Rails测试中轻松解析带有参数的URL?
抱歉我的英语不好...
在我的archives.rb模型中,我有一个方法可以从HTML内容中获取所有src属性,我获取到的src如下:
http://localhost:3000/es/editor/archives/28/show_image?x=142&y=142
我需要从该URL获取参数,具体而言是:id、x、y
谢谢, 问候。
正确的方法是:
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)
在你的控制器中,你可以使用'params[:x]'和'params[:y]'。例如:
x = params[:x]
y = params[:y]
可以使用一些正则表达式来完成
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>
id
。 - Bohdan