【问题标题】:Given a URL path, can I get the url params that would be used to fulfill the request?给定一个 URL 路径,我可以获得用于完成请求的 url 参数吗?
【发布时间】:2018-04-03 20:41:53
【问题描述】:

例如在 routes.rb 我有类似的东西

  namespace :api do
    namespace :v1 do
      post 'login/:email' => 'authentication#login', email: /[^\/]+/
    end
  end

给定字符串"/api/v1/login/lisa@example.com" 我想知道这个路径包含一个名为email 的参数,其值为lisa@example.com

【问题讨论】:

  • 澄清一下,这不仅仅是针对电子邮件,而是一个更普遍的问题。比如get 'foo/:id' => 'foo#show'给定路径"/foo/123",我想知道这个路径中包含一个名为id的参数,其值为123

标签: ruby-on-rails ruby-on-rails-4 actiondispatch


【解决方案1】:

您可以使用以下正则表达式

/[\w+\-.]+@[a-z\d\-.]+\.[a-z]+/

这会给你结果

"/api/v1/login/lisa@example.com".scan(/[\w+\-.]+@[a-z\d\-.]+\.[a-z]+/).first

#=> "lisa@example.com"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 2016-08-26
    • 2015-03-14
    • 2011-11-30
    • 2014-07-22
    • 1970-01-01
    • 2020-12-11
    • 2013-01-15
    相关资源
    最近更新 更多