コントローラーとアクションを使用して、そのメール アドレスを持つユーザー アカウントが存在するかどうかを簡単に確認しようとしています。
コントローラーのアクションは次のようになります。
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