如何在Rails上的URL中放置电子邮件地址

wal*_*.ar 6 ruby email url ruby-on-rails

我想邀请那些在他们的网址中传递电子邮件的人:

localhost:3000/invite_me/email@gmail.com
Run Code Online (Sandbox Code Playgroud)

我试过这个,match但它没有用.

match "/invite_me/:email" => "application#invite_me",
    :constraints => { :email => '/.+@.+\..*/' }
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

No route matches [GET] "/invite_me/waldyr.ar@gmail.com"
Run Code Online (Sandbox Code Playgroud)

rake路线输出:

root  /                           application#index
  /invite_me/:email(.:format) application#invite_me {:email=>"/.+@.+\\..*/"}
Run Code Online (Sandbox Code Playgroud)

Kyl*_*yle 9

您的约束必须是实际的正则表达式而不是字符串

match "/invite_me/:email" => "application#invite_me",
    :constraints => { :email => '/.+@.+\..*/' }
Run Code Online (Sandbox Code Playgroud)

应该

match "/invite_me/:email" => "application#invite_me",
    :constraints => { :email => /.+@.+\..*/ }
Run Code Online (Sandbox Code Playgroud)