我想从下面的Rails字符串中获取一些特定值,这些是两个字符串。
1. "http://localhost:3000/admin/shops/assign_shoes?id=50&page=1"
2. "http://localhost:3000/admin/shops/assign_shoes?id=50"
我总是需要“id”的值,即“50”。无论字符串
中有多少参数作为查询字符串。
实际上,这些字符串是 request.referer
的值任何有效的方法?
由于
答案 0 :(得分:4)
以下是其中一种方式:
require 'uri'
require 'cgi'
uri = URI.parse("http://localhost:3000/admin/shops/assign_shoes?id=50&page=1")
# => #<URI::HTTP:0x000001018dc5c8 URL:http://localhost:3000/admin/shops/assign_shoes?id=50&page=1>
uri_params = CGI.parse(uri.query)
# => {"id"=>["50"], "page"=>["1"]}
uri_params["id"].first #=> "50" - NOTE: this will be a String!!
但是,我更喜欢使用正则表达式的答案。
答案 1 :(得分:2)
使用正则表达式。
id = /\/admin\/shops\/assign_shoes\?id=(\d+)/.match(request.referer)[1]
答案 2 :(得分:1)