3 votes

Ruby on Rails - utilisation de :include dans un modèle de schéma différent

Je travaille avec des modèles Ruby on Rails. J'ai deux modèles appartenant à deux schémas différents. Ces deux modèles ont une relation parent-enfant, par exemple

class Group < ActiveRecord::Base
  has_one :customer
end

class Customer < ActiveRecord::Base
  establish_connection "schema2"
end

Le modèle Groupe est dans le schéma 1 et le client est dans le schéma 2. Si je fais ceci pour charger les groupes en utilisant le code suivant :

self.paginate(:all, :page => currentpage, :per_page => per_page, :include => :customer)

J'obtiens l'erreur "schema1.Customer" est un nom non défini" car il essaie de trouver le client dans le schéma 1 au lieu du schéma 2.

Comment puis-je modifier cette requête (ou ce :include) pour indiquer que le client est dans le schéma 2. J'ai essayé d'ajouter le nom de la classe dans la relation has_one du groupe comme suit has_one :customer, class_name=>"Customer" mais cela ne résout pas le problème, et je reçois la même erreur.

Des idées ?

0voto

fl00r Points 41855

Vous ne pouvez pas. Vous ne pouvez les charger que séparément :

@groups = self.paginate(:all, :page => currentpage, :per_page => per_page)
@customers = Customer.find(:all, :conditions => {:id => @groups.map(&:id)})

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X