Rails 3.2
我有一个运行轨道应用程序,带有公司MVC。
在models / company.rb中,我有以下方法:
def save_company_pay_num
return false unless self.valid?
create_company_pay_num if self.company_pay_num.blank?
res = save_check_company_pay_num
unless res[0]
errors.add(:set_company_pay_num, res[1].try{|r| r.split(':')[1].strip.capitalize})
return false
end
true
end
我有大约1,000家公司需要重新发放他们的工资号。
有没有办法从rails控制台(rails c)执行文件,例如:
reset_pay_num.rb
company_ids=[
'1',
'2',
'3',
...
]
company_ids.each do |c|
company = Company.find(c)
company.save_company_pay_num
end
答案 0 :(得分:4)
我不知道这种行为的原因是什么,因为至少你可以把你的脚本作为一个方法放在rails所需的某个文件中但是:
eval(File.read 'reset_pay_num.rb')
会做到这一点。
答案 1 :(得分:0)
我认为你需要为这些目的创建一个rake-task。