我正在尝试使用控制器和操作来进行简单的检查,以查看具有该电子邮件地址的用户帐户是否存在。
控制器的动作如下所示:
def checkEmail
email = params["email"]
if Account.find_by_email(email).blank?
render :inline=>"true"
else
render :inline=>"false"
end
end
为了测试这个动作,我可以去:
http://localhost:3000/home/checkEmail/email@website.com
当我这样做时,我可以在 Ruby 控制台中看到正在查询以下内容:
Parameters: {"email"=>"email@website"}
Account Load (0.0ms) SELECT `accounts`.* FROM `accounts` WHERE `accounts`.`email` = 'email@website' LIMIT 1
您可以看到电子邮件地址的 TLD 已被裁剪掉。
但是,当我去:
http://localhost:3000/home/checkEmail/email@website.co.uk
我收到路由错误:
No route matches [GET] "/home/checkEmail/email@website.co.uk"
我的 routes.rb 文件如下所示:
Gallery::Application.routes.draw do
#Match home URL
match 'home(/:file)' => "home#index"
match 'home/checkUser/:username' => "home#checkUser"
match 'home/checkEmail/:email' => "home#checkEmail"
root :to=> "home#index"
end