Извлечь параметр из URL в разных формах - PullRequest

1 Ответ

2 голосов
/ 01 марта 2012
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...