2012-03-01 5 views
0

次のURLからid = 123を取得するにはどうすればよいですか?異なるフォームのURLからパラメータを抽出する

"http://www.test.com/user/controller/123/edit?query1='A'" 
"http://www.test.com/user/controller/action_name?query1='A'&query2=123" 
"http://www.test.com/user/controller/action_name?query2=123&query_3='B'" 
"http://www.test.com/user/controller/123/edit" 
+0

だけで明確にします。あなたはRuby on Railsを使用せず、REST url stringからIDを取得したいのですか? – vellotis

+0

答えは本当にあなたが使用しているフレームワークによって異なります。 –

+0

@KhajaMinhajuddin本当はそうではありません。このような文字列の解析は、純粋なRubyでは、使用されるかもしれないし、使用されていないかもしれない「フレームワーク」にかかわらず、むしろ単純です。 – Phrogz

答えて

2
def q2id(url) 
    url[%r{controller/(\d+)},1] or url[%r{query2=(\d+)},1] 
end 

%w[ 
    http://www.test.com/user/controller/123/edit?query1='A' 
    http://www.test.com/user/controller/action_name?query1='A'&query2=123 
    http://www.test.com/user/controller/action_name?query2=123&query_3='B' 
    http://www.test.com/user/controller/123/edit 
].each{ |url| puts q2id(url) } 
#=> 123 
#=> 123 
#=> 123 
#=> 123 

か短い-が、レスクリア:

def q2id(url) 
    url[%r{(?:controller/|query2=)(\d+)},1] 
end 
関連する問題