条件

2012-03-25 14 views
12

場合、私はif文のRuby(1.9.2)で、条件として正規表現を使用しようとしているが、それは正規表現がnil条件

if (params[:test] =~ /foo/) 
    return "match" 
else 
    return "no match" 
end 

と評価された場合にも上記をtrueを返し続けるRubyで正規表現を使用します私の作品"bar"

+1

私はこれを再現できません。おそらく 'params [:test] ==" bar "'が間違っていると仮定しています。 –

+0

私はirbのコマンドラインでそれをチェックしただけで、状況を再現することはできません。 '' bar "=〜/ foo /'はnilを返します。あなたの問題はどこか他の場所です... –

+0

私はRails.logger.info(params [:test])のif文の上にある行を "bar"と出力します – Exupery

答えて

33
if params[:test] =~ /foo/ 
    # Successful match 
else 
    # Match attempt failed 
end 

に設定としてRails.logger.info(params[:test])がテストを示しても、戻って「一致」。何が入っているのかをデバッグしてくださいparams[:test]