Ruby on Rails - 数组中的Validates_inclusion_of

Dar*_*use 2 ruby ruby-on-rails

我正在尝试创建验证,它只允许数组中的值.

validates_inclusion_of :valid_number, :in =>[1,2,3,4,5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我想要的是这样的

numbers = [1,2,3,4,5,6,7,8,9,10]

validates_inclusion_of :valid_number, :in => numbers
Run Code Online (Sandbox Code Playgroud)

当我输入时,我总是得到NoM​​ethodError.这让我相信也许我需要一种不同类型的变量(实例,类,全局).

只是单挑,我知道有一种方法可以验证范围内的数值,但这不是我想要的.我只是选择了数字,因为输入速度更快.

agm*_*eod 5

应该能够使它成为一个常数:

NUMBERS = (1..10).to_a
validates_inclusion_of :valid_number, :in => NUMBERS
Run Code Online (Sandbox Code Playgroud)

这可能也有效,但我没有测试过:)

编辑不,不起作用.下面抛出一个错误.

self.numbers = (1..10).to_a
validates_inclusion_of :valid_number, :in => numbers
Run Code Online (Sandbox Code Playgroud)