Si tu as bien :

class Project < AR::Base
has_many     :project_permissions
has_many     :users, :through => :project_permissions
has_many     :companies, :through => :users
end

class ProjectPermission < AR::Base
belongs_to    :user
belongs_to    :project
end

class Users < AR::B
has_many     :projects, :through => :project_permissions
belongs_to    :company
end

class Company < AR::B
end

Avec dans tes tables correspondantes :
projects
id

projects_permissions
user_id
project_id

users
id
company_id
company
id

Ca devrait marcher.

Maintenant voyons voir
>> p.companies
Company Load (0.0ms)   Mysql::Error: Unknown column 'users.project_id'
in 'where clause': SELECT `companies`.* FROM `companies` INNER JOIN
users ON companies.id = users.company_id WHERE ((`users`.project_id =
4))
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column
'users.project_id' in 'where clause': SELECT `companies`.* FROM
`companies`  INNER JOIN users ON companies.id = users.company_id
WHERE ((`users`.project_id = 4))

Ah, tiens, oui, on dirait bien qu'il essaye de trouver l'association dans
"users" plutôt que dans la table d'association, peut-être justement parce
qu'il lui manque un objet AR::B pour gérer l'association justement.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à