2011-01-22 17 views
0

trueまたはfalseを返すメソッドを作成します。Rails - ブール値を返すメソッド。空白になることがあります。

Rails.logger.info is_a_valid_email?(params[:user][:email]) 

if is_a_valid_email(params[:user][:email]) != true 
    @user.errors.add :email, 'address is not valid.' 
end 

protected 

デフis_a_valid_email?(Eメール)私は、コントローラなしモデルで検証できるようにする必要があるアプリ関連の理由から

email_regex = %r{ 
^# Start of string 
    [0-9a-z] # First character 
    [0-9a-z.+]+ # Middle characters 
    [0-9a-z] # Last character 
    @ # Separating @ character 
    [0-9a-z] # Domain name begin 
    [0-9a-z.-]+ # Domain name middle 
    [0-9a-z] # Domain name end 
    $ # End of string 
}xi # Case insensitive 

!(email =~ email_regex) 

end 

を。上記は確実に動作していません。私は 'is_a_valid_email'をtrueまたはfalseのいずれかに戻して、falseの場合にエラーmsgを適用できるようにします。

提案?

答えて

2

thxsあなたはおそらくここにあなたのメソッド呼び出しでタイプミスを得た:

if is_a_valid_email(params[:user][:email]) 

あなたはそこに疑問符を追加する必要があります

if is_a_valid_email?(params[:user][:email]) 

また、あなたがコントローラで検証を行う必要がある場合は、あなたの」おそらく何か間違っている。

+0

ありがとうございます。私はそこでバリデーションをする必要はありませんが、私はすべてのバリデーションをスキップするDevise Invitableを使用しています。 – AnApprentice

関連する問題