1

多くの LineItems を持つ Orders があります。LineItems has_many リード。ユーザーがリードを購入するまで、リードはユーザーに関連付けられません。関連付けは、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 を参照できるようにしたいと考えています。

4

1 に答える 1

2

簡単に見てから、ブロック変数を指定する必要があります。

self.line_items.each do |line_item|
于 2012-05-23T14:56:38.847 に答える