5

我目前正在尝试处理 RoR。我将两个字符串传递给我的控制器。一个是随机的十六进制字符串,另一个是电子邮件。该项目用于对数据库进行简单的电子邮件验证。我遇到的问题是当我输入如下内容来测试我的页面时:

http://signup.testsite.local/confirm/da2fdbb49cf32c6848b0aba0f80fb78c/bob.villa@gmailcom

我在参数哈希中得到的:email只是'bob'. 我离开了.中间gmailcom外面,因为那会导致比赛根本不起作用。

我的路由匹配如下:

match "confirm/:code/:email" => "confirm#index"

这对于我需要的东西来说似乎很简单。我很难弄清楚这笔交易是什么,以及如何寻找答案。任何帮助或指导将不胜感激。

4

2 回答 2

7
match "confirm/:code/:email" => "confirm#index", :email => /.*/

get我认为在这里设置方法会更好

get "confirm/:code/:email" => "confirm#index", :email => /.*/
于 2011-04-24T02:46:09.073 回答
5

您的问题是 Rails 试图解释.villa@gmailcom为格式规范(例如.htmlor .json)。AFAIK,标准解决方法(或至少我使用的)是将其添加到您的路线中:

:requirements => { :email => /.*/ }

这欺骗了 Rails 不试图对:email包含的内容保持聪明。

我对你找不到任何东西并不感到惊讶,在谷歌上搜索“@”或“。” 没有做任何有用的事情。

于 2011-04-24T02:46:42.200 回答