Rails用句点(或句号)查询字符串。

时间:2011-04-24 02:40:52

标签: ruby-on-rails ruby routes query-string rails-routing

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

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

我在:email的params散列中的所有内容都是'bob'。我将.放在gmailcom之间,因为这会导致匹配根本不起作用。

我的路由匹配如下:

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

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

2 个答案:

答案 0 :(得分:6)

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

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

这使得Rails不会试图对:email包含的内容有所了解。

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

答案 1 :(得分:5)

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

此外,最好在此处设置get方法,我认为

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