Ruby Array,Hash,Integer

时间:2012-01-06 20:58:42

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

我正在使用名为"ice_cube"

的宝石

在构建计划时,我需要将一些整数传递给.day()方法,如下所示:

schedule.add_recurrence_rule IceCube::Rule.weekly(1).day(1,2,3)

当我直接这样做时,它有效。但是,当我尝试将包含整数的变量传递到.day()方法时,我就迷失了。

尝试了这个:

days = [1,2,3]

schedule.add_recurrence_rule IceCube::Rule.weekly(1).day(days)

它不起作用。我得到的错误是......

NoMethodError (undefined method `<' for [1, 2, 3]:Array):

我犯了一个非常明显的错误吗?

我应该如何格式化我的变量days以便它被接受?

2 个答案:

答案 0 :(得分:4)

您可能需要使用splat运算符将数组扩展为单独的参数(然后可能会合并到days方法中的单个数组中):

days = [1,2,3]

schedule.add_recurrence_rule IceCube::Rule.weekly(self.every.to_i).day(*days)

答案 1 :(得分:0)

schedule.add_recurrence_rule IceCube::Rule.weekly(1).day(*days)