如何使用常量创建下拉列表并进行验证?

时间:2014-03-12 11:13:23

标签: ruby-on-rails ruby

我正在从常量NOTIFY创建一个下拉列表。

在视图中:

<%= f.select(:notify, NOTIFY) %>

在environment.rb中,因为我在不同的类中使用常量:

NOTIFY = [['Never', 'never'],['Immediately', 'immediately'],['End Of The Day', 'end_of_day']]

在我的模型中,我想验证存储的内容是列表的一部分:

validates :notify, allow_blank: true, :inclusion => { :in => NOTIFY }

小写键(数组中的第二个值)作为参数发送,因此我得到验证错误。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

试试这个:

validates :notify, allow_blank: true, :inclusion => { :in => NOTIFY.map{ |n| n.last } }

包含需要一个数组来检查包含的列表以进行验证。而且,这就是你所缺少的。