2011-07-13 10 views
0
def check_beta_code 
    beta_code_array = ['AAAAAAAAAA', 'BBBBBBBBBB', 'CCCCCCCCCC', 'DDDDDDDDDD', 'EEEEEEEEEE'] 

    if false == beta_code_array.include?(:beta_code) 
     errors.add(:beta_code, "Invalid Beta Code") 
    end 
end 

私は、ユーザー、user = User.new{:beta_code=>'AAAAAAAAAA'}を作成し、user.save #=> falseそして私はなぜそれがいても、エラーをuser.errors #=>{:beta_code=>["Invalid Beta Code"]}このコードでは目的の結果が得られないのはなぜですか?

与えているん:beta_codeは値の1に等しいのですか? ヘルプ!あなたの条件付きで

+2

なぜ "if false =="部分が必要ですか?その行を書くより簡単な方法は、 "beta_code_array.include?(beta_code)"以外の場合です。 – Preacher

+1

+1説教者、私は私の答えでこれを変更します。 –

答えて

6

ルック:

beta_code_array.include?(:beta_code) 

beta_code_arrayシンボル:beta_codeが含まれている場合はチェックしています。文字列パラメータを渡すことを前提としていますか?私はRailsにあまり慣れていないので、これがUserモデルの正しい形式でない場合は、私を修正してください。

+0

本当にありがとう、私はかなりレールとコードの一般的な初心者です – Vasseurth

+2

喜んで助けてください。あなたの学習に幸運! –

関連する問題