我有一个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