我必须多次运行这个脚本。有没有我可以编写的脚本可以同时运行所有内容?

时间:2014-01-09 18:35:19

标签: ruby task

我必须运行的脚本:

Li = LineItem.find ##### 
li.rental_period = ### 
li.save!

我有800个订单项号来运行此功能。非常感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

如果他们都有不同的租期:

line_item_numbers.each do |num|
  li = LineItem.find(num)
  li.rental_period = custom_rental_period
  li.save!
end

如果它们完全相同,您只需执行update_all

LineItem.where(id: line_item_numbers).update_all(rental_period: custom_rental_period)

答案 1 :(得分:0)

line_item_number_string = line_item_number.join(',')    
ActiveRecord::Base.connection.execute("UPDATE line_items SET rental_period=<value> WHERE id IN (#{line_item_number_string})")

答案 2 :(得分:0)

while循环

a = 0
b = 4 #this loop will run 4 times 
while a < b 

 Li = LineItem.find ##### 
 li.rental_period = ### 
 li.save!

 a += 1 #adds one to a
end

这与第一个答案几乎相同,只是以不同的方式编写。我发现红宝石的新手可以更容易理解这一点。

OR

def go
 Li = LineItem.find ##### 
 li.rental_period = ### 
 li.save!
end

然后在代码中调用“go”来执行语法

go

这就是你怎么称呼