0

コントローラーとアクションを使用して、そのメール アドレスを持つユーザー アカウントが存在するかどうかを簡単に確認しようとしています。

コントローラーのアクションは次のようになります。

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
4

1 に答える 1