自动生成特定时间间隔的发票 - Rails

时间:2014-04-29 07:25:22

标签: ruby-on-rails activerecord model

在我的Rails应用程序中,我有一个表格,用于保存我的客户发票,我希望系统自动为每个月的所有客户自动生成发票。表clients和表invoice相互关联。

的客户端

has_many :invoices

发票

belongs_to :client

有没有人知道如何自动执行此操作?

数据必须在每个月的第一天生成,并且必须保存在发票表中 所以,正如你猜测我对RoR真的很新,我想在发票模型中编写了一个用于cron的方法,任何人都可以查看它并判断我是否在正确的路径上(我已经使用该应用程序并且不想弄乱数据库),发票(suma)的值保存在clientpf.suma中,我的发票模型名为Factpf,这里是我的方法

Cron的Facpf方法

def self.generare

@clientpfs = Clientpf.all
@clientpfs.each do |clientpf|
self.suma  = clientpf.ab
self.clientpf_id = clientpf.id
Factpf.create!
end
end

1 个答案:

答案 0 :(得分:1)

使用Whenever gem并执行以下操作:

示例schedule.rb文件,

every '0 0 1 * *' do
  runner "Model.your_method_generating_invoice"
end

符号'0 0 1 * *'表示每月运行一次。

要了解有关“0 0 1 * *”符号的更多信息,请参阅here

希望有所帮助:)