Salve,

Sto lavorando su rails 2.3.2 con ruby 1.9.1 e ho provato a creare delle relazioni fra 2 tabelle tramite una tabella di join.
I miei Model sono:
- User
- Activity
- ActivityUser (è il model che uso per legare User e Activity)

La tabella del ActivityUser ha la seguente struttura:
codice:
create_table :activity_users do |t|
      t.integer :activity_id, :null => false
      t.integer :holder_id  # gli utenti che lavorano sull'attività
      t.integer :receiver_id # gli utenti per cui viene realizzato l'attività
      t.timestamps
end
Il model del ActivityUser ha le seguenti relazioni:
codice:
class ActivityUser < ActiveRecord::Base
    belongs_to :activity
    belongs_to :holder, :class_name => "User", :foreign_key => "holder_id"
    belongs_to :receiver, :class_name => "User", :foreign_key => "receiver_id"
end
Il model del Activity ha le seguenti relazioni:
codice:
class Activity < ActiveRecord::Base
    has_many :activity_users
    has_many :holders, :through => :activity_users
    has_many :receivers, :through => :activity_users
end
Ok, per adesso nessun problema, riesco a creare un attività ed ad associarci degli holders e dei receivers.
Il mio problema è di impostare le relazioni sul model User in modo da ottenere le attività legate al utente come holder oppure receiver.
Ho provato queste relazioni sul model User (però non funziona):
codice:
class User < ActiveRecord::Base
    has_many :activity_users
    has_many :activities, :through => :activity_users
end
Mi restituisce il seguente errore:
codice:
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'activity_users.user_id' in 'where clause':
SELECT `activities`.* FROM `activities`  INNER JOIN `activity_users` ON `activities`.id = `activity_users`.activity_id    
WHERE ((`activity_users`.user_id = 2))
Dovvrei dire al mio User model di usare il campo holder_id oppure receiver_id nella clausola WHERE ma non so come fare perché l'opzione :through ignora le opzioni :class_name e :foreign_key .

Qualcuno mi può aiutare? Grazie.