JeuWeb - Crée ton jeu par navigateur
[Résolu][Rails] Récupération de données composites de PostgreSQL avec MonModel.select - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Rails] Récupération de données composites de PostgreSQL avec MonModel.select (/showthread.php?tid=5711)

Pages : 1 2 3 4


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Sephi-Chan - 27-09-2011

Regarde alors du côté de RGeo, ça a l'air mieux maintenu.
Par curiosité, quel intérêt as-tu à utiliser ce type Point ? Quelles fonctionnalités built-in utilises-tu ?


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Maz - 27-09-2011

(27-09-2011, 07:26 PM)Sephi-Chan a écrit : Regarde alors du côté de RGeo, ça a l'air mieux maintenu.
Par curiosité, quel intérêt as-tu à utiliser ce type Point ? Quelles fonctionnalités built-in utilises-tu ?
Sincèrement c'est ça qui me fou le plus les boules, c'est que je dois installer postGis pour les gem qui étende activerecord, alors que finalement je vais me servir de 1 millième de leur capacité.

Dans ma bdd j’utilise que deux type: point et path(sauf peut etre dans les versions futures...).

J’utilise que les fonctions hyper basique du genre calcul de la taille du chemin (path), pour calculer le temps restant à la chasse etc, calcul de la distance entre deux point.

Je crois que ce sont les deux seules fonctions que j’utilise sur mon jeu. Si j'était un peu plus callé Rails j'aurais peut être opté pour faire ces fonctions via une class loadé et tout stocké dans la bdd en string, mais c'est bridé pgsql pour plus utiliser rails...


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Sephi-Chan - 27-09-2011

Effectivement, je comprends ta frustration. Tu as raison de vouloir utiliser les mécanismes de ton SGBDR.

Seulement, Active Record a fait le choix de ne pas faire ça : il encourage à utiliser les callbacks plutôt que les triggers du SGBDR, il ne crée pas de contrainte d'unicité, de foreign key, etc.

Après, tu peux joindre les deux mondes : des gens ont étendu Active Record pour déléguer plus de trucs au SGBDR… C'est le cas des ces adapters. Smile

Il y en a pour tous les goûts.


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Maz - 27-09-2011

Pas pour le mien apparemment, je veut juste un adapter qui étends activerecord juste assez pour gérer les type spéciaux de postgresql, sans postgis dont je n'ai aucunement besoin!

postgresql de base propose déjà les types: point, line, lseg, box, path, polygon, circle, c'est AMPLEMENT suffisant pour faire un jeu web! PostGIS est utilisé pour tout ce qui est grosse cartographie du genre GPS etc...


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Sephi-Chan - 27-09-2011

J'ai comme un doute…

J'ai crée un projet de test dans lequel j'ai crée un modèle : rails g model character nameConfusedtring position:point. Et ça n'a pas crié. J'ai l'impression que l'adapter PostgreSQL gère ce type tout seul, sans rien faire.

Peux-tu essayer ?



RE: [Rails] Récupération de donnée via Class.select("SQL").last - Maz - 27-09-2011

On t'as déjà dis que tu en faisait trop? J'essaie...

Edit: ça fonctionnes aussi chez moi. Mais créé un modèle et le lié avec la BDD, c'est une autre histoire.

Edit²: le rake db:migrate renvoi:
Citation :== CreateCharacters: migrating ===============================================
-- create_table(:characters)
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `point' for #<ActiveRecord::ConnectionAdapters:TongueostgreSQLAdapter::TableDefinition:0x99b5a60>

Je l'ai grugé en modifiant la migration:
Citation :t.column :position, :point

La table est maintenant créé... je vais faire des tests.


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Sephi-Chan - 27-09-2011

En faire trop à quel propos ?
Tiens-moi au courant (en réponse, pas en édit). Smile


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Maz - 27-09-2011

En faire trop pour aider les gens. Tu trouves encore le temps pour programmer?

D'après mes tests:
class ApplicationController < ActionController::Base
protect_from_forgery
def index
@character = Character.first
end
end
<%= @character.position %>

Résultat:
Citation :(5,5)

Mais impossible d'accéder à position.x position.0 ou autre ...


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Sephi-Chan - 27-09-2011

J'aime bien aider les gens et leur apprendre des trucs (j'aimerais bien être prof de Ruby si certaines écoles se mettent à l'enseigner !). Effectivement ça bouffe beaucoup de temps.
Mais si j'aide des gens à apprendre Rails, ils pourront répondre aux questions d'autres nouveaux Rubyistes, et donc me délester de cette charge.

Quel est la classe de l'objet retournée par cette méthode position ?
Et que donne son inspect ?


RE: [Rails] Récupération de donnée via Class.select("SQL").last - Maz - 27-09-2011

inspect renvoi: "(5,6)"
la classe de l'objet retourné je le trouves comment?