从 Rails 控制台执行 ruby 脚本
Executing a ruby script from the Rails console
Rails 3.2
我有一个 运行 rails 应用程序,带有公司 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
我不知道这种行为的原因是什么,因为至少您可以将您的脚本作为一种方法放入 rails 所需的某些文件中但是:
eval(File.read 'reset_pay_num.rb')
会成功的。
我认为您需要为此创建一个 rake-task。
Rails 3.2
我有一个 运行 rails 应用程序,带有公司 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
我不知道这种行为的原因是什么,因为至少您可以将您的脚本作为一种方法放入 rails 所需的某些文件中但是:
eval(File.read 'reset_pay_num.rb')
会成功的。
我认为您需要为此创建一个 rake-task。