如何循环has_many集合并使用另一个模型设置HABTM

时间:2012-05-23 03:00:28

标签: ruby-on-rails ruby-on-rails-3 jointable

我的订单有很多LineItems。 LineItems has_many Leads。在用户购买之前,潜在客户不会与用户相关联。该关联是通过HABTM关系和连接表LeadsUsers设置的。

用户购买潜在客户后,我需要设置关联。我有一个带有正确HABTM代码设置的LeadsUsers模型。在我的订单模型中,我有以下内容:

has_many :line_items
after_save :assign_lead_to_user

def assign_lead_to_user
   self.line_items.each do 
     leads_users = LeadsUsers.create :user_id => :user_id, :lead_id => line_item.lead.id
     leads_users.save
   end   
  end 

此方法失败:未定义的局部变量或方法`line_item'。我知道这意味着它不知道我指的是什么line_item ......有什么想法吗?最终,我希望能够引用User.leads.all。

1 个答案:

答案 0 :(得分:2)

看了一下,你需要提供一个块变量:

self.line_items.each do |line_item|