2011-12-20 8 views
4

フォームセレクションではなく、同じ配列を使用してバリデーションのためのインクルードをテストするための最良の方法についてのアドバイスを得ようとしています。フォームとバリデーションを含む配列を使用したレール

は今、私はそれを持っているが、私は確信している、要素および検証すなわち内

# Form 
<%= f.select(:status, [['Live','live'], ['Paused', 'paused']]) %> 

# Model 
validates :status, :inclusion => { :in => %w(live paused) } 

を配列を構築することは、これらの配列を格納し、それらを使用するためのより良い方法があるだろう!

アドバイスをいただきありがとうございます。

答えて

10

あなたのモデルにこれらの2つの定数を追加し、検証を呼び出すことができます。

VALID_STATES = ["live", "paused"] 
SELECT_STATES = VALID_STATES.map { |s| [s.capitalize, s] } 
validates :status, :inclusion => { :in => Model::VALID_STATES } 
+0

AGH素敵な、一度小さな微調整モデル:: VALID_STATESは、ありがとう – Lee

関連する問題