2011-01-21 35 views
0

trueまたはfalseを返すメソッドを作成しようとしていますが、どちらも戻りません。何が間違っていますか?コントローラでRails - trueまたはfalseを返すメソッド

valid_email_domain(email.to_s) 

protected 
    def valid_email_domain(emailAddy) 
    reg = Regexp.new /#{User::INVALID_EMAILS.map{|a| Regexp.quote(a)}.join("|")}/ 
    Rails.logger.info 'REGEX TIME' 
    Rails.logger.info emailAddy.scan(reg).size  
    if emailAddy.scan(reg).size == 0 
     return true 
    else 
     return false 
    end 
    end 

valid_email_domainは何も返されません。問題は何ですか?おかげ

+0

コントローラコードを表示すると、モデルをどのように参照しますか? – Satya

+3

これは間違った方法ではありませんが、あなたはルビーを磨くべきです。 – vise

+0

@vise how so?私はここで学ぶためにここにいる。 – AnApprentice

答えて

2

はこれを試してみてください:サイドポイントとして

def valid_email_domain?(emailAddy) 
    reg = Regexp.new /#{User::INVALID_EMAILS.map{|a| Regexp.quote(a)}.join("|")}/ 
    Rails.logger.info 'REGEX TIME' 
    Rails.logger.info emailAddy.scan(reg).size  
    emailAddy.scan(reg).size == 0 
end 

を、Rubyで一般的な方法の命名規則は、ブール値を返すメソッドのための末尾?を使用することです。

+0

ありがとうJacob、私は追加していた? parathesesの後に。 – AnApprentice

+0

REGEXで何か問題があるように見えますが、これは別の問題だと指摘しているので、別のスレッドを開始しました。メールがINVALID_EMAILSと一致しない場合は、ハングしています – AnApprentice

関連する問題