为所有客户端自动生成发票-Rails



我有一个Ruby on Rails应用程序,我想一次为所有客户端生成发票,表之间有一个one_to_many关联。我的客户端表名为Clientpf,发票表名为Factpf,我在Factpf模型中有一个生成方法,看起来像这个

Factpf模型方法

def self.generate(client)
@clientpfs = client
@clientpfs.each do |clientpf|
factpf.create!
sold = clientpf.sold
tt = clientpf.ab
rez = tt * 3
if sold > 0 and rez > sold
factpf.suma  = clientpf.ab
factpf.data = Time.now
factpf.save!
end
end
end

factpf_controller中的调用方法看起来像这个

Facptpf_controller调用方法

def generate
client  = Clientpf.all
Factpf.generate(params[:client])
redirect_to root_url, notice: "Facturile lunare au fost emise."
end

我的错误看起来像这样,

找不到id为生成的Factpf

提取来源(88号线附近):868788899091

# Use callbacks to share common setup or constraints between actions.
def set_factpf
  @factpf = Factpf.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.

Rails.root:/home/dbdominet

应用程序跟踪|框架跟踪|完全跟踪app/controllers/factpfs_controller.rb:88:在"set_factpf"中请求

参数:

{"id"="generate"}

您应该使用create/build来创建相关的实体

示例:

client = Clientpf.find params[:client_id]
factpf = client.factpfs.create suma: clientpf.ab, data: Time.now

有关详细信息,请参阅http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

最新更新