我目前正在尝试处理RoR。我将两个字符串传递给我的控制器。一个是随机十六进制字符串,另一个是电子邮件。该项目用于对数据库进行简单的电子邮件验证。我遇到的问题是当我输入类似下面的内容来测试我的页面时:
http://signup.testsite.local/confirm/da2fdbb49cf32c6848b0aba0f80fb78c/bob.villa@gmailcom
我在:email
的params散列中的所有内容都是'bob'
。我将.
放在gmail
和com
之间,因为这会导致匹配根本不起作用。
我的路由匹配如下:
match "confirm/:code/:email" => "confirm#index"
这对于我需要的东西来说似乎很简单。我很难弄清楚这笔交易是什么,甚至是如何找到答案。任何帮助或指导将不胜感激。
答案 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 => /.*/