Hi there ,
i'm trying to preload my associations like this :
@infos = ArchInformation.paginate_by_sql[sql_request], :page => params[:page], :per_page => nb_infos_per_page
ActiveRecord::Associations::Preloader.new(@infos, [:archive_arch_treatments, :archive_arch_contacts]).run
(sql_request containts something like this :
SELECT DISTINCT i.*,u.login, t.dossier_noaors, t.handle_date, c2.email, Count(fi2.id) AS nb_fichiers FROM (((archive.information i left join archive.treatments t on i.id=t.information_id) left join public.users u on u.id=t.user_id) left join archive.contacts c2 on i.id=c2.information_id) left join archive.fichiers_informations fi2 on i.id=fi2.information_id left join archive.contents c on c.id = i.content_id WHERE ((i.is_draft <> 1 AND is_draft <> -1) OR i.is_draft is null) AND c2.type_contact_id = 1 AND (i.creation_date >= '2015-02-04 00:00:00 +0100' ) GROUP BY i.id, u.login,t.dossier_noaors,t.handle_date,c2.email ORDER BY creation_date DESC
and i get some result from it
now,here is my models :
class ArchInformation < ActiveRecord::Base set_table_name 'archive.information'
has_one :archive_arch_treatments, :class_name => 'ArchTreatments' has_many : archive_arch_contact, : class_name => 'ArchContacts'
. . . end
class ArchContacts < ActiveRecord::Base set_table_name 'archive.contacts'
. . . end
class Archtreatments < ActiveRecord::Base set_table°name 'archive.treatments' belongs_to :archive_arch_information, :class_name =>"ArchInformation", :foreign_key => "information_id"
. . . end
and when i run this , i've got an error : here is the logs :
PG::UndefinedColumn: ERREUR: la colonne treatments.arch_information_id n'existe pas LINE 1: ..."treatments".* FROM "archive"."treatments" WHERE "archive".... ^ : SELECT "archive"."treatments".* FROM "archive"."treatments" WHERE "archive"."treatments"."arch_information_id" IN ('1885320', '1885319', '1885318', '1885317', '1885316', '1885315', '1885314', '1885313')
the error is obvious , when activeRecord build the request , he named my foreign key "arch_information_id" instead of "information_id" like i told him in my ArchTreatments class
Why ? And how the fix it ?
Already thanks you