开发者

Rails query string with a period (or full stop).

开发者 https://www.devze.com 2023-02-28 14:26 出处:网络
I am currently trying to get a handle on RoR.I am passing in two strings into my controller.One is a random hex string and the other is an email.The project is for a simple email verification on a dat

I am currently trying to get a handle on RoR. I am passing in two strings into my controller. One is a random hex string and the other is an email. The project is for a simple email verification on a database. The problem I am having is when I enter something like below to test my page:

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

All I am getting in my params hash of :email is 'bob'. I left the . between gmail and com out because that would cause the match to not work at all.

My routing match is as follows:

match "confirm/:code/:email" => "confirm#index"
开发者_高级运维

Which seems simple enough for what I need. I am having a hard time trying to figure out what the deal is and really how to even search for an answer. Any help or guidance would be greatly appreciated.


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

Also it would be better to set get method here, I think

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


Your problem is that Rails is trying to interpret .villa@gmailcom as a format specification (such as .html or .json). AFAIK, the standard work around (or at least the one I use) is to add this to your route:

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

This tricks Rails into not trying to be clever about what :email contains.

I'm not surprised that you couldn't find anything, googling for "@" or "." doesn't do anything useful.

0

精彩评论

暂无评论...
验证码 换一张
取 消