25-09-2011, 03:30 PM
(Modification du message : 25-09-2011, 03:37 PM par Sephi-Chan.)
(25-09-2011, 03:25 PM)Maz a écrit : Merci BEAUCOUP, pour tous ces conseils, vraiment. J'ai pris bonnes notes et modifier, d'ailleurs pour montrer ma studiosité(pas stupidité!), j'avais déjà créé mes propres fonctions pour la creation de sequence et le nextval:
class City < ActiveRecord::Base
def create_sequence_fourmis_id_seq
ActiveRecord::Base.connection.execute("CREATE SEQUENCE fourmis_" + self.user.username + "_id_seq")
end
def nextval_fourmis_id_seq
ActiveRecord::Base.connection.select_value("SELECT nextval('fourmis_" + self.user.username + "_id_seq')")
end
end
Bien sur elle ne sont pas aussi bien que les tiennes, d'ailleurs je vais les utiliser (je n'avais pas penser à mentioner user en paramètre ,) ).
Pour ce qui est du JSON et l'autre, j'ai laissé par défaut ce que le scaffold m'as généré.
La seule erreur qui peut se produire est que le champs quantity ne soit pas remplis.
Je vais faire la méthode products! j'éditerais ce message au cas ou personne ne répondrais derrière.
Donc le cas d'erreur n'est pas celui d'un utilisateur de bonne foi puisque le champ aurait forcément une valeur par défaut (que ce soit dans un champ caché ou dans le formulaire de traitement, peu importe). D'où l'intérêt de lancer une exception si ça foire. Le code ne se soucie que des cas d'utilisation réalistes, ce qui le rend plus simple et plus efficace.
Concernant tes fonctions, je ne les trouve pas très bien nommées et je trouve plus cohérent que ce soit la classe Ant qui soit capable de déterminer le nom d'une fourmi.
Méfie-toi des scaffold. C'est cool pour apprendre mais les CRUD ne sont pas tes meilleurs amis quand tu codes un jeu. Pose toi toujours la question de quel format est utile à rendre. Et quand tu veux rendre du JSON un peu complexe, utilise la gem Rabl.