2017-09-15 3 views
0

J'ai une table en postgres avec une clé composite. J'essaye d'y accéder en utilisant rails_admin.RailsAdmin ne comprenant pas la clé composite

Model.rb:

class ModelName < ActiveRecord::Base 
    self.table_name = 'schema.tablename' 
    establish_connection :db 
end 

je peux voir le nombre de lignes et le nom de la table et tout. Mais quand je clique sur la table dans l'interface utilisateur d'administration, il échoue avec cette erreur

: SELECT "schema"."tablename".* FROM "schema"."tablename" ORDER BY schema.tablename. desc LIMIT 20 OFFSET 0

L'id manque dans l'ordre par article. Est-ce parce que c'est un identifiant composite? Comment puis-je obtenir l'administration de rails pour identifier correctement l'ID de la table?

Répondre

1

Ce n'était pas un problème avec rails_admin mais avec ActiveRecord. ActiveRecord ne prend pas en charge les clés composites. J'ai dû installer une gemme appelée composite_primary_keys puis définir la clé composite dans le modèle. Rails Admin a ensuite pu récupérer l'identifiant correct et afficher les entrées.