使用带有表格和数组的数组的Rails验证包含

时间:2011-12-20 22:47:21

标签: ruby-on-rails ruby-on-rails-3

尝试就使用数组进行表单选择的最佳方法获得一些好的建议,但使用相同的数组来测试包含进行验证。

现在我有了它,但在元素和验证中构建数组,即

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

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

我确信有更好的方法来存储这些数组并使用它们!

感谢您提供的任何建议。

1 个答案:

答案 0 :(得分:10)

您可以将这两个常量添加到模型中,然后调用验证:

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