Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1218 connectés 

 


Pourquoi j'aime rails?




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  22  23  24  ..  26  27  28  29  30  31
Auteur Sujet :

[Rails] Blabla@rails

n°1938720
esox_ch
Posté le 08-11-2009 à 11:35:29  profilanswer
 

Reprise du message précédent :
Salut,
J'ai remonté le problème sur la mailing de Ruby. On va voir ce que ça donne là-bas.

 

Par contre autre question, j'ai la requête suivante :

Code :
  1. User.find_by_sql("select users.* from users,roles_users,roles,secretariats where roles_users.user_id = users.id && roles_users.role_id = roles.id && roles.title = 'secretary' && secretariats.id = users.secretariat_id && users.secretariat_id = (select secretariat_id from users where id = #{form.user.id})" )
 

Vous avez une idée de comment la rendre plus "ruby-style", sans passer par des "each" et autres fonctions? Juste en utilisant les scopes & find quoi  .. Parce que là je sèche :D

 



Message édité par esox_ch le 08-11-2009 à 14:21:29

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 08-11-2009 à 11:35:29  profilanswer
 

n°1939853
igarimasho
Posté le 12-11-2009 à 09:28:43  profilanswer
 

Quelqu'un est au courant d'un quelconque comportement suspect de la méthode Array#size et du counter_cache dans RoR? Parce que j'ai perdu quelques heures à cause de ça:
 

Code :
  1. f = Forum.find(10)
  2. f.update_attribute(:topics_count, f.topics.size)
  3. UPDATE "forums" SET "updated_at" = '2009-11-12 08:11:37.934067' WHERE "id" = 10


WTF ?! [:pingouino]  
 
Tandis que:

Code :
  1. f.update_attribute(:topics_count, f.topics.length)
  2. UPDATE "forums" SET "updated_at" = '2009-11-12 08:11:37.934067', "topics_count" = 1 WHERE "id" = 10


Enfin ça marche, ça m'a juste pris quelques heures pour y penser. Je vous évite de regarder l'api ruby, mais length est un alias pour size. Un coup d'ActiveSupport?
 
 
But wait!

Code :
  1. f = Forum.find(10)
  2. f.topics_count = 1
  3. f.save
  4. UPDATE "forums" SET "updated_at" = '2009-11-12 08:11:37.934067' WHERE "id" = 10


 [:petrus75]   [:maestro]   :fou:  
 
C'est quoi ce bordel? J'ai râté quelque chose? Pourquoi ce putain de forum ne veut pas mettre à jour son topics_count sauf avec le coup du topic.length????  :heink:

n°1940218
Rioji
Posté le 12-11-2009 à 23:05:08  profilanswer
 

t'es pas sensé ne pas y toucher et laisser Rails gérer ça tout seul ? [:petrus75]
 
Edit :

Citation :

The counter cache is incremented when an object of this class is created and decremented when it‘s destroyed



Message édité par Rioji le 12-11-2009 à 23:10:12
n°1941502
LeRiton
Posté le 17-11-2009 à 11:22:17  profilanswer
 

'jour :o
 
Rails + Mercurial + passage en prod.
 
J'ai vu trainer une solution à base de hook qui me semble très cool, mais elle impose que l'utilisateur exécutant Rails ne soit pas www-data (Apache + Passenger BTW, mais ne restreignez pas vos réponses, le passage sous Nginx est prévu), puisque c'est l'user en charge du push qui sera proprio. Et je ne sais pas comment on change ça, à part en modifiant le httpd.conf, ce que je ne veux pas faire parce qu'il n'y a pas que du Rails dessus. Alors il y a bien ça ou du suexec, mais bon :/
 
De même, on pourrait prendre le chemin inverse, avec un chown dans le hook qui change le proprio en www-data, mais ça implique un sudo, donc dans le hook un appel d'un script contenant les commandes et une modif de la table des sudoers pour ne pas demander de mot de passe pour l'exécution de ce script précis. Je trouve pas ça très maintenable.
 
J'ai raté quelque chose ?

n°1941528
igarimasho
Posté le 17-11-2009 à 12:18:04  profilanswer
 

Haha! Alors comme ça on veut utiliser ma méthode robuste, indestructible et ultra-efficace de déploiement Capistrano-less (patent pending)!  [:hahaguy]  
 
Mais en fait c'est quoi ta question?  [:urd]


Message édité par igarimasho le 17-11-2009 à 12:18:23
n°1941531
LeRiton
Posté le 17-11-2009 à 12:24:11  profilanswer
 

Si je procède comme dans l'exemple, le propriétaire des fichiers est celui qui fait le push ssh. Donc je dois faire un chown, ce que je ne peut pas scripter sans rencontrer un des problème listé.

 

Edit : c'est toi l'auteur du blog que je link ?


Message édité par LeRiton le 17-11-2009 à 12:24:35
n°1941533
igarimasho
Posté le 17-11-2009 à 12:30:23  profilanswer
 

Ha ok. Quand tu pushes, tu peux définir le nom de user que tu veux, et côté serveur il faut qu'il ait le droit de toucher tmp/restart.txt, et rulez non? Apache je connais pas donc je restreindrais ma réponse à nginx  :D  
 
PS: c'est pas moi l'auteur de ce blog, mais lui comme moi avons compris qu'on peut enfoncer profond capistrano avec mercurial et une seule ligne de commande ;)


Message édité par igarimasho le 17-11-2009 à 13:19:07
n°1941536
LeRiton
Posté le 17-11-2009 à 12:39:55  profilanswer
 

Je me trompe peut-être (peux pas test au bureau), mais apache à besoin de pouvoir lire et exécuter le contenu du répertoire de mon app à minima non ? (d'ailleurs, c'est pas ce même user qui écrit dans les logs ?)
 
Donc soit c'est www-data qui push (pas possible), soit je met des droits dégeux à mes fichiers, soit j'ai raté un truc.

n°1941553
seabee
Posté le 17-11-2009 à 13:34:36  profilanswer
 

Si c'est QUE ça qui vous intéresse, effectivement laissez tomber cap, il ne vous sert à rien...
Le jour ou vous aurez une application multi-serveurs  (2 frontaux, 1 admin, 2 DB, 2 assets, par ex.) et un client tolérance 0 downtime, je veux voir la gueule de vos scripts et des traces de transpiration sous vos aisselles quand vous aurez à faire un Rollback avec migration :o

Message cité 1 fois
Message édité par seabee le 17-11-2009 à 13:35:44
n°1941557
igarimasho
Posté le 17-11-2009 à 13:44:58  profilanswer
 

Dans ce cas il faudrait créer une migration supplémentaire toute bête qui va défaire la migration précédente non? Comme ça on s'embête pas avec les cas particuliers des rollbacks sur le serveur. Enfin j'imagine.

mood
Publicité
Posté le 17-11-2009 à 13:44:58  profilanswer
 

n°1941559
igarimasho
Posté le 17-11-2009 à 13:48:20  profilanswer
 

LeRiton a écrit :

Donc soit c'est www-data qui push (pas possible), soit je met des droits dégeux à mes fichiers, soit j'ai raté un truc.


Tu peux pas créer un groupe spécial auxquels appartiennent www-data et ton user qui push? Comme ça tu donnes des droits clean à ton appli uniquement à ce groupe?

n°1941561
seabee
Posté le 17-11-2009 à 13:49:22  profilanswer
 

igarimasho a écrit :

Dans ce cas il faudrait créer une migration supplémentaire toute bête qui va défaire la migration précédente non? Comme ça on s'embête pas avec les cas particuliers des rollbacks sur le serveur. Enfin j'imagine.


rake db:rollback devrait suffire, si ta migration est écrite correctement  :o  
 
Non, le soucis c'est que une fois que ton opération est lancée, tu n'as rien pour revenir en arrière si ça merdoix.
 
Et ça merdoix toujours un jour, même avec la meilleur plateforme de test/couverture de test du monde. [:xqwzts]

n°1941563
igarimasho
Posté le 17-11-2009 à 13:55:27  profilanswer
 

seabee a écrit :

Non, le soucis c'est que une fois que ton opération est lancée, tu n'as rien pour revenir en arrière si ça merdoix.
 
Et ça merdoix toujours un jour, même avec la meilleur plateforme de test/couverture de test du monde. [:xqwzts]


Ha ben oui sur les opérations destructives. Ne m'en parle pas d'ailleurs, je me suis tapé ça la semaine dernière  :sweat: . Mais j'ai gardé une sorte de pseudo-backup/redondance des données dans la DB au cas où. Y'a encore les coins à ébavurer mais globalement ça s'est bien passé  :sol:  
 
Sinon le coup de rake db:rollback sur le serveur j'aime moyen, parce que du coup il faut être nickel poil et synchro entre la machine de dév et le serveur, et à tous les coups tu vas faire sur l'un et pas sur l'autre. Donc j'automatise tout ça et je ne fais que des rake db:migrate (sauf sur la machine de dév si ça n'a pas déjà été envoyé au serveur) même pour défaire un truc.

n°1941573
LeRiton
Posté le 17-11-2009 à 14:13:18  profilanswer
 

seabee a écrit :

Si c'est QUE ça qui vous intéresse, effectivement laissez tomber cap, il ne vous sert à rien...


 
Je confirme, c'est pour de la petite appli.
 

igarimasho a écrit :

Tu peux pas créer un groupe spécial auxquels appartiennent www-data et ton user qui push? Comme ça tu donnes des droits clean à ton appli uniquement à ce groupe?


 
A voir ouai, je vais tester.
 

n°1941589
Skateinmar​s
Posté le 17-11-2009 à 14:37:31  profilanswer
 

LeRiton a écrit :

Je me trompe peut-être (peux pas test au bureau), mais apache à besoin de pouvoir lire et exécuter le contenu du répertoire de mon app à minima non ? (d'ailleurs, c'est pas ce même user qui écrit dans les logs ?)

 

Donc soit c'est www-data qui push (pas possible), soit je met des droits dégeux à mes fichiers, soit j'ai raté un truc.

 

Mets les dans le même groupe et fout les bons droits en lecture/ecriture aux bons endroits ?

 

edit: pas refresh avant de poster toussa :o


Message édité par Skateinmars le 17-11-2009 à 14:40:25

---------------
Feedback HAV
n°1941832
LeRiton
Posté le 18-11-2009 à 10:54:40  profilanswer
 

igarimasho a écrit :


Tu peux pas créer un groupe spécial auxquels appartiennent www-data et ton user qui push? Comme ça tu donnes des droits clean à ton appli uniquement à ce groupe?


 
J'ai testé donc, mon utilisateur courant ajouté au groupe www-data, le répertoire de mon appli appartient à mon-user:www-data.
 
Sauf que, avec le hook suivant

Code :
  1. [hooks]
  2. incoming = hg update -C && RAILS_ENV=production rake db:migrate && touch tmp/restart.txt


 
Les fichiers créés ou modifiés par l'update sont propriété de mon-user:mon-user en lecture uniquement pour le reste du monde. Le masque de création doit pouvoir se renseigner dans les options de mon repo (pas encore reagrdé), mais pour l'instant, j'ai bâclé ça en ajoutant au hook de très dégueux chown + chmod.
 
D'une manière générale, et tant que vos script de déploiement customs ne sont pas appellés par www-data, vous devriez rencontrer el même type de problème non ?
 
PS : question subsidiaire qui n'a rien à voir, y'a aucun moyen (autre qu'un helper perso) pour formater l'affichage d'un float afin qu'il n'affiche les digits après la virgule que si ce ne sont pas des zéros ? ça me parrait pourtant très commun comme besoin...
 

n°1942084
igarimasho
Posté le 18-11-2009 à 19:37:20  profilanswer
 

La giffle: http://www.binarylogic.com/2009/10 [...] ourcelogic  :ouch:  
 
Heureusement j'ai finalement dév mon propre système de controlleurs admin et dry juste ce qu'il faut :love:

Message cité 1 fois
Message édité par igarimasho le 18-11-2009 à 19:38:37
n°1942205
seabee
Posté le 19-11-2009 à 09:56:27  profilanswer
 

igarimasho a écrit :

La giffle: http://www.binarylogic.com/2009/10 [...] ourcelogic  :ouch:  
 
Heureusement j'ai finalement dév mon propre système de controlleurs admin et dry juste ce qu'il faut :love:


Franchement, laisse tomber ces trucs. C'est juste hallucinant qu'ils aient mis autant de temps à s'en rendre compte;
Mon projet a été développé par des "smart people" (y'avait même un mec de la core-team, c'était en 2005), plein d'"unobstrusive magick", genre auto-admin, JS généré pour chaque page, etc.  
 
L'horreur.  
 
Là-dessus des prestas se sont relayés dessus.
Comme ils n'avaient pas une vision globale des bousins, ils ont hackés des trucs dessus rapido. Fait du cargo. Dupliqué du code.
 
Impossible de maintenir la merde, on part sur une v2 :/  
 
Ce genre de saloperies, ça rend le boulot moche et chiant.  
 
Il faut mettre le moins de code possible dans les controllers et tester les modèles jusqu'à plus soif. Pas de plugin magick. Period.

n°1942228
Skateinmar​s
Posté le 19-11-2009 à 10:22:11  profilanswer
 

seabee a écrit :


 
Ce genre de saloperies, ça rend le boulot moche et chiant.  


 
Le problème à mon avis c'est que ce genre de plugins ca marche pas sur les gros projets, il y a toujours trop de code spécifique donc on se retrouve avec plein de bordel dans leur genre de before_filter, ou essayer de changer les sélecteurs, etc donc au final plus de code qu'à l'origine.
 
Sur les petits projets simple ca marche bien, mais il y a plus aucun intérêt, donc au final bah ca sert à rien :D
 
Depuis peu on utilise un plugin simple avec un PagesController (inspiré d'exemples déjà existants), un PublicController et un AdminController qui font rien d'autre que choisir le bon layout et si necessaire mettre un before_filter pour verifier l'authentification. Simple et efficace pour nettoyer les vraies duplications de code


---------------
Feedback HAV
n°1942249
seabee
Posté le 19-11-2009 à 10:43:40  profilanswer
 

Skateinmars a écrit :


 
Le problème à mon avis c'est que ce genre de plugins ca marche pas sur les gros projets, il y a toujours trop de code spécifique donc on se retrouve avec plein de bordel dans leur genre de before_filter, ou essayer de changer les sélecteurs, etc donc au final plus de code qu'à l'origine.
 
Sur les petits projets simple ca marche bien, mais il y a plus aucun intérêt, donc au final bah ca sert à rien :D
 
Depuis peu on utilise un plugin simple avec un PagesController (inspiré d'exemples déjà existants), un PublicController et un AdminController qui font rien d'autre que choisir le bon layout et si necessaire mettre un before_filter pour verifier l'authentification. Simple et efficace pour nettoyer les vraies duplications de code


Same here.
 
Effectivement, le plus simple est parfois de se souvenir que Ruby est un language objet. Le tout comportemental (plugin/polymorphism => acts_as_truc) peut rendre le code assez imbitable.
Une bonne STI des familles avec une bonne table bien grasse, rien de mieux  [:ethnik]

Message cité 1 fois
Message édité par seabee le 19-11-2009 à 10:44:00
n°1943069
igarimasho
Posté le 21-11-2009 à 14:16:40  profilanswer
 

Oulah, qqn utilise getexceptional? y'a un truc qui me plaît moyen que je viens de découvrir à l'instant même.
 
J'ai l'impression que lorsqu'une erreur survient le plugin l'intercepte et empêche rails de la logger dans le fichier production.log, du coup ce n'est consultable que sur leur site. Quelqu'un peut confirmer / réfuter?

n°1943255
seabee
Posté le 22-11-2009 à 18:44:13  profilanswer
 

igarimasho a écrit :

Oulah, qqn utilise getexceptional? y'a un truc qui me plaît moyen que je viens de découvrir à l'instant même.

 

J'ai l'impression que lorsqu'une erreur survient le plugin l'intercepte et empêche rails de la logger dans le fichier production.log, du coup ce n'est consultable que sur leur site. Quelqu'un peut confirmer / réfuter?


Essaie Hoptoad, mais sur ton serveur redmine.

 

ça pootre...

 

Il te créé les demandes de fix, ne les duplique pas, les réouvre si l'erreur resurvient, c'est de la bombe. Et installation en 20 secondes. (respecter à la lettre le hash d'option et attention au nom du tracker de bug, il change suivant la langue de redmine).
http://github.com/edavis10/redmine_hoptoad_server

 

Bon, si tu n'as pas de serveur redmine, je te suggère d'en ouvrir un commun pour toutes tes applis.
Mon RedMine, c'est un peu mon Home Sweet Home et ma caverne de méchant dans James Bond. Je m'y sens bien avec mon chat sur les genoux. :D [:altherac:2]


Message édité par seabee le 22-11-2009 à 18:47:47
n°1943260
igarimasho
Posté le 22-11-2009 à 19:08:57  profilanswer
 

Ouais Redmine c'est bien, je m'en servais y'a longtemps. Je connaissais pas l'intégration avec hoptoad.

n°1943263
igarimasho
Posté le 22-11-2009 à 19:25:20  profilanswer
 

seabee a écrit :

Effectivement, le plus simple est parfois de se souvenir que Ruby est un language objet. Le tout comportemental (plugin/polymorphism => acts_as_truc) peut rendre le code assez imbitable.
Une bonne STI des familles avec une bonne table bien grasse, rien de mieux  [:ethnik]


Pour le coup du polymorphisme t'as carrément raison, j'ai ça et c'est un peu la merde à gérer.

n°1943564
igarimasho
Posté le 23-11-2009 à 15:48:52  profilanswer
 

Une petite question con pour ceux qui ont un site de commerce en ligne et doivent se taper la DEEE: vous gérez ça comment? Un champs tout con? Un truc plus évolué et au moins aussi chiant à maintenir? Les distributeurs vous donnent directement le montant de l'écotaxe à refacturer?
 
EDIT:


C'est autorisé par Hoptoad ce genre de truc?

Message cité 1 fois
Message édité par igarimasho le 23-11-2009 à 15:52:46
n°1943688
seabee
Posté le 23-11-2009 à 17:44:17  profilanswer
 

igarimasho a écrit :

Une petite question con pour ceux qui ont un site de commerce en ligne et doivent se taper la DEEE: vous gérez ça comment? Un champs tout con? Un truc plus évolué et au moins aussi chiant à maintenir? Les distributeurs vous donnent directement le montant de l'écotaxe à refacturer?
 
EDIT:


C'est autorisé par Hoptoad ce genre de truc?


Si la licence est une MIT, je vois pas le soucis.
Ils vendent pas le code, juste le Sas.

n°1943694
igarimasho
Posté le 23-11-2009 à 18:12:38  profilanswer
 

Oui tu as raison.
 
Donc j'ai tout installé, et je pense avoir configuré correctement, mais quand ça plante rien n'est loggé chez redmine. Qu'est-ce que je pourrais avoir oublié? Comment débugger?
 
EDIT: mince:

Code :
  1. $ rake hoptoad:test
  2. [...]
  3. ** [Hoptoad] Timeout while contacting the Hoptoad server.


Message édité par igarimasho le 23-11-2009 à 18:24:45
n°1943714
igarimasho
Posté le 23-11-2009 à 18:51:15  profilanswer
 

Mais, mais, mais, ça ne peut pas marcher:

Code :
  1. Sending request to https://redmine.monsite.com/notifier_api/v2/notices/:


Et quand je grep l'appli redmine et son plugin, je ne trouve aucune allusion à v2 ni à notifier_api. Y'a un truc qui n'est pas à jour  [:spamafote]
 
EDIT: ha oui en fait hoptoad est passé en v2 au début du mois de novembre. J'imagine qu'il faut que j'utilise la v1.2.4 alors avec redmine?

Message cité 1 fois
Message édité par igarimasho le 23-11-2009 à 18:58:37
n°1943738
seabee
Posté le 23-11-2009 à 20:13:57  profilanswer
 

igarimasho a écrit :

Mais, mais, mais, ça ne peut pas marcher:

Code :
  1. Sending request to https://redmine.monsite.com/notifier_api/v2/notices/:


Et quand je grep l'appli redmine et son plugin, je ne trouve aucune allusion à v2 ni à notifier_api. Y'a un truc qui n'est pas à jour  [:spamafote]
 
EDIT: ha oui en fait hoptoad est passé en v2 au début du mois de novembre. J'imagine qu'il faut que j'utilise la v1.2.4 alors avec redmine?


Ha zut. effectivement je n'ai pas mis à jour (en fait j'ai freezé hoptoad_notifier.rb dans mon rep. /lib ).

n°1943744
igarimasho
Posté le 23-11-2009 à 20:46:12  profilanswer
 

Dans le code de hoptoad je vois ça:

Code :
  1. raise exception_class.new, 'Testing hoptoad via "rake hoptoad:test". If you can see this, it works.'


Mais ça n'apparaît pas dans la console, ça ne marche donc pas?  :(
 
EDIT: ha enfin ça marche, en fait ça n'apparaît pas dans la console, mais dans redmine, je sais pas trop qu'est-ce qui a fait marcher le bin's...  [:urd]


Message édité par igarimasho le 23-11-2009 à 21:13:03
n°1943749
igarimasho
Posté le 23-11-2009 à 21:20:14  profilanswer
 

Bon sang! Ca marche sur ma machine de dév, mais pas sur mon serveur! C'est débile  [:pingouino]

n°1943771
seabee
Posté le 23-11-2009 à 22:46:24  profilanswer
 

Ton serveur peut envoyer des mails? :o
 
Après t'as qu'à tailer les logs Redmine.
 
Surtout fait bien gaffe au tracker => En VF c'est Anomalie, pas Bug. ça m'avait bien fait perdre du temps.
 
Sinon ça a tourné sans tweaking.

n°1943778
igarimasho
Posté le 23-11-2009 à 23:07:23  profilanswer
 

Mais c'est un truc de bricolo tout ça.
 
- Déjà ça n'envoit pas de mail, ça post les données ;)
- Après sur la machine de dev, si je lance "$ rake hoptoad:test", ça update l'issue sur le serveur mais rien n'est loggé dans redmine/production.log, donc n'imp EDIT: en fait je sais pas, les dévs ont cru bon de ne pas suivre le rest, donc tout se passe dans l'action index  [:icon14]  
- si je force un plantage sur la machine de dév rien n'est updaté
- sur le serveur rien n'est loggé ni créé/updaté dans redmine.
 
PS: le code de redmine est toujours aussi crado :sweat:

Message cité 1 fois
Message édité par igarimasho le 23-11-2009 à 23:16:16
n°1943868
seabee
Posté le 24-11-2009 à 10:31:51  profilanswer
 

igarimasho a écrit :

Mais c'est un truc de bricolo tout ça.

 

- Déjà ça n'envoit pas de mail, ça post les données ;)
- Après sur la machine de dev, si je lance "$ rake hoptoad:test", ça update l'issue sur le serveur mais rien n'est loggé dans redmine/production.log, donc n'imp EDIT: en fait je sais pas, les dévs ont cru bon de ne pas suivre le rest, donc tout se passe dans l'action index  [:icon14]
- si je force un plantage sur la machine de dév rien n'est updaté
- sur le serveur rien n'est loggé ni créé/updaté dans redmine.

 

PS: le code de redmine est toujours aussi crado :sweat:


Oui exact, ça curl le truc en post.
Chez moi ça marche [:poutrella]

 
Code :
  1. HoptoadNotifier.configure do |config|
  2.   config.api_key = {
  3.                     :project => 'marketing',                     # the identifier you specified for your project in Redmine
  4.                     :tracker => 'Anomalie',                           # the name of your Tracker of choice in Redmine
  5.                     :api_key => 'XXX',          # the key you generated before in Redmine (NOT YOUR HOPTOAD API KEY!)
  6.                     :category => 'Development',                  # the name of a ticket category (optional.)
  7.                     :priority => 5                                 # the default priority (use a number, not a name. optional.)
  8.                    }.to_yaml
  9.   config.host = 'redmine.preprod.***.com'            # the hostname your Redmine runs at
  10.   config.port = 80                                                # the port your Redmine runs at
  11.   config.secure = false                                           # sends data to your server via SSL (optional.)
  12. end
 

De toute façon, si tu as un post qui part, il se passe forcément un truc de l'autre coté
Ou sinon le post échoue. Je comprends pas ou tu rames... [:x-bar]

 


Pour le port, c'est 80 si tu le fait en http. A remettre en je-sais-plus-quoi si tu veux du https en mettant secure à true.


Message édité par seabee le 24-11-2009 à 10:33:24
n°1943925
igarimasho
Posté le 24-11-2009 à 11:54:49  profilanswer
 

Que le post passe ou pas de toute façon je ne vois jamais le message "failure" ou "success" apparaître...
 
Quand je lance le test sur ma machine de dév ça notifie le serveur du bug => okay, quand je lance cette même simulation d'erreur sur le serveur, rien ne se passe.
 
J'ai vaguement tenté de logguer l'url utilisée côtée serveur, et pour une raison obscure c'est juste "/notices" qui est utilisé au lieu de "https://chezmoiçamarchepas.com:443/notices"  [:spamafote]  
 
De toute façon c'est un foutoir pas possible leur code et pas super maintenu alors je reviens sur getexceptional pour le moment  :jap:


Message édité par igarimasho le 24-11-2009 à 11:55:39
n°1943956
igarimasho
Posté le 24-11-2009 à 14:03:33  profilanswer
 

J'ai réussis à le faire marcher en faisant tourner redmine avec webrick. M'enfin ça reste un truc de mickey parce que c'est pas au point.
 
Quand ma machine de dév envoie l'erreur à redmine qui tourne avec passenger je reçois 2 emails de notifications (en double en fait me demandez pas pourquoi), alors que c'est censé être désactivé, et c'est bien tracké dans redmine. La réponse n'est pas outputée à la console ou ailleurs.
 
Quand le serveur envoie l'erreur à redmine qui tourne avec webrick, je ne reçois pas les emails de notification, et la réponse est enfin envoyée à la console, et trackée dans redmine.
 
Bref c'est super foireux et pas sérieux du tout avec une chiée de requêtes (dont des t0_r0) à la BDD pour notifier de l'erreur :sweat:

n°1944659
seabee
Posté le 25-11-2009 à 17:10:38  profilanswer
 

igarimasho a écrit :

J'ai réussis à le faire marcher en faisant tourner redmine avec webrick. M'enfin ça reste un truc de mickey parce que c'est pas au point.
 
Quand ma machine de dév envoie l'erreur à redmine qui tourne avec passenger je reçois 2 emails de notifications (en double en fait me demandez pas pourquoi), alors que c'est censé être désactivé, et c'est bien tracké dans redmine. La réponse n'est pas outputée à la console ou ailleurs.
 
Quand le serveur envoie l'erreur à redmine qui tourne avec webrick, je ne reçois pas les emails de notification, et la réponse est enfin envoyée à la console, et trackée dans redmine.
 
Bref c'est super foireux et pas sérieux du tout avec une chiée de requêtes (dont des t0_r0) à la BDD pour notifier de l'erreur :sweat:


J'ai moins regardé le code que toi, forcément, mais honnêtement, tu te prends trop le chou :D
 
Plug le truc en http, ramasse les erreurs, .. profit :o

n°1946567
igarimasho
Posté le 02-12-2009 à 12:25:11  profilanswer
 

$ sudo gem update :o

n°1948050
igarimasho
Posté le 07-12-2009 à 17:05:09  profilanswer
 

Rails s'avère parfois très frustrant:

Citation :

@site.users
 
SELECT * FROM "users" WHERE ("users".site_id = 1)


Ok pas de souci.
 
Maintenant j'ajoute un named_scope à User:

Code :
  1. named_scope :conferencers, :conditions => {:state => "conferencer"}


 
Et je fais:

Code :
  1. @site.users.conferencers
  2. SELECT * FROM "users" WHERE ("users".site_id = 1)
  3. SELECT * FROM "users" WHERE ("users".site_id = 1) AND (("users"."state" = E'conferencer') AND ("users".site_id = 1))


 [:pingouino]
 
La bonne vieille méthode qui pète demeter et tout ce qu'on veut, a le mérite de marcher sans aucun souci:

Code :
  1. def find_conferencers
  2.   User.find(:all, :conditions => {:state => "conferencer", :site_id => id})
  3. end
  4. SELECT * FROM "users" WHERE ("users"."state" = E'conferencer' AND "users"."site_id" = 1)


Message édité par igarimasho le 07-12-2009 à 17:31:55
n°1950063
igarimasho
Posté le 14-12-2009 à 12:19:43  profilanswer
 

Tout le monde est passé chez php?  :o  
 
Sinon, mon appli fait une détection du nom de domaine et affiche certains éléments en fonction. J'ai donc un model Site qui instantie un objet à chaque requête. Comme chaque site est configurable je me suis dis que je vais faire un has_one avec un model SiteSettings, histoire qu'à chaque requête la BdD renvoie un peu moins d'infos. J'ai bon ou c'est le l'optimisation inutile que je suis en train de faire?

n°1950492
seabee
Posté le 15-12-2009 à 13:55:31  profilanswer
 

Si c'est l'instanciation ActiveRecord qui te fait peur, oui c'est inutile, tu peux spécifier ce que tu veux mapper en passant :select => "col" lors de ton find. Ton objet AR ne contiendra que les infos mappées.
 
De toute façon, "premature optimization is the root of all evil".
 

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  22  23  24  ..  26  27  28  29  30  31

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Ruby On Rails] [Resolu] Routing error[Ruby On Rails] Afficher un message d'erreur depuis un model
[HTML - CSS] Problème avec la balise <a>href="#">blabla</a>[regexp] Extraire deux chaines : "blabla"[espaces,tab]"blublu"
Ruby On Railsruby on rails
Arrivera-t-on a la page 10000 de blabla avant 2006?blabla 3
blabla 2PUTAIN HARKO TU AS FERM2 BLABLA !
Plus de sujets relatifs à : [Rails] Blabla@rails


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR