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

Lee*_*Lee 4 ruby-on-rails ruby-on-rails-3

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

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

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

# Model
validates :status, :inclusion => { :in => %w(live paused) }
Run Code Online (Sandbox Code Playgroud)

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

感谢您提供的任何建议.

Fed*_*les 10

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

VALID_STATES = ["live", "paused"]
SELECT_STATES = VALID_STATES.map { |s| [s.capitalize, s] }
validates :status, :inclusion => { :in => Model::VALID_STATES }
Run Code Online (Sandbox Code Playgroud)