我的/领导/新动作正常。由于该人正在报名参加比赛,我需要从我的Ticket模型(我从CSV导入)中获取下一个可用的票号,该票号具有lead_id的外键。
我还需要在@ lead.save = true之后将lead_id添加到Ticket.lead_id列。有人可以提供指导吗?我是一个新手,看完有关嵌套资源的视频后,我更加困惑。
def create
@lead = Lead.new(lead_params)
if @lead.save
redirect_to @lead
else
render "new"
end
end
我的模型列下面列出了相关模型。
Ticket.column_names
=> ["id", "code", "created_at", "updated_at", "lead_id"]
Lead.column_names
=> ["id", "name", "email", "created_at", "updated_at"]
谢谢!
更新 - Lead.rb
class Lead < ActiveRecord::Base
has_many :tickets
after_create :assign_ticket
def assign_ticket
Lead.tickets << Ticket.where(lead_id: nil).first
end
end
现在问题出现在我创建新的潜在客户时:
NoMethodError in LeadsController#create
Extracted source
def assign_ticket
Lead.tickets << Ticket.where(lead_id: nil).first #this is the error line
end
端
更新#2 - 现在有效
class Lead < ActiveRecord::Base
has_many :tickets
after_create :assign_ticket
def assign_ticket
self.tickets << Ticket.where(lead_id: nil).first
end
end
当我创建Lead时,它确实为它分配了第一个未获得的票。现在,在Lead创建操作之后,我该如何打印票证?
答案 0 :(得分:1)
如果您在以下模型中定义关联:
<强> Ticket.rb 强>
belongs_to :lead
<强> Lead.rb 强>
has_many :tickets
然后在模型 Lead.rb 中写道:
after_create :assign_ticket
def assign_ticket
self.tickets << Ticket.where(lead: nil).first
end