2016-08-31 118 views
0
Rails 3.2 

我有一個運行rails應用程序,公司MVC。從Rails控制檯執行ruby腳本

在模型/ 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 

我有大約1000家公司中,需要有自己的付出數重發。

有沒有一種方法,從鐵軌控制檯(導軌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

你可以直接在控制檯上粘貼內容,如果他們不是太多 –

+1

我相信你會想要使用[rake任務](http://guides.rubyonrails.org/command_line.html#custom-rake-任務) – Dbz

回答

4

我不知道什麼是對這種行爲,因爲至少你可以把原因您的腳本作爲一些文件所需的軌道內的方法,但:

eval(File.read 'reset_pay_num.rb') 

將做的伎倆。

+0

這是一次性的事情,我不想觸摸應用程序。我會 – EastsideDeveloper

0

我認爲你需要爲這些目的創建一個rake任務。