Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
767 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  ..  24  25  26  27  28  29  30  31
Auteur Sujet :

[Rails] Blabla@rails

n°1965927
john8585
Posté le 14-02-2010 à 20:55:51  profilanswer
 

Reprise du message précédent :

esox_ch a écrit :

Est-ce que quelqu'un d'entre vous (Genre seabee :D ) utilise act_as_nested/awesome_nested_set/better_nested_set ?
 
Si j'ai bien compris, le plugin le plus abouti est awesome_nested_set, et pourtant je me mange des "Duplicate entry" dans tous les sens :bounce:


 
J'ai utilisé awesome_nested_set pour mettre en place un système de commentaires imbriqués, pas de soucis chez moi :)

mood
Publicité
Posté le 14-02-2010 à 20:55:51  profilanswer
 

n°1965929
esox_ch
Posté le 14-02-2010 à 21:14:17  profilanswer
 

Tu as mis des clé uniques sur les champs "lft" et "rgt" ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1965931
john8585
Posté le 14-02-2010 à 21:36:04  profilanswer
 

esox_ch a écrit :

Tu as mis des clé uniques sur les champs "lft" et "rgt" ?


 
De tête je sais plus, bcp d'index sur les parent, lft et rgt je crois mais une clé unique je suis pas sur.
Je te confirme demain du boulot devant le code :)

n°1965934
seabee
Posté le 14-02-2010 à 22:02:20  profilanswer
 

esox_ch a écrit :

Tu as mis des clé uniques sur les champs "lft" et "rgt" ?


J'ai utilisé awesome_nested_set et better_nested_set. Les deux sont des drop-in replacement l'un de l'autre, donc pas difficile de tester les deux (avec les mêmes données).

 

Awesome nested set n'a pas de full_set, de reorder_children(ids) et de move_to_top|bottom qui sont bien pratiques. (mêmes si ont peu se démerder sans eux.)

 

Sinon leurs codes est tellement semblable... :/

 

Je recommanderai pas de mettre des clefs uniques sur left et right, par contre. On sait jamais si ça peut pas foutre la merde un jour :o

 

Pour les index
  t.index [:parent_id, :lft]
  t.index [:lft, :rgt]
ça couvre 99% des cas.


Message édité par seabee le 14-02-2010 à 22:06:24
n°1965935
esox_ch
Posté le 14-02-2010 à 22:13:59  profilanswer
 

Parce que cette histoire ça m'inquiète. Théoriquement j'ai le droit de mettre cette clé unique sur ces valeurs, vu qu'elles doivent être uniques. Du coup je me demande si le plugin fait pas quelques tour de passe-passe qui risque de mettre en péril la cohérence des données


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1965990
seabee
Posté le 15-02-2010 à 10:47:54  profilanswer
 

Ce sont pas des plugins de guignols :o

n°1966004
john8585
Posté le 15-02-2010 à 10:57:01  profilanswer
 

Je confirme, pas de clé unique non plus ici :)

n°1966065
esox_ch
Posté le 15-02-2010 à 12:16:07  profilanswer
 

D'accord mais vous pensez pas que si l'index unique gueule dès que je crée un noeud, c'est qu'il y a des problèmes potentiels ?
Moi j'ai un peu peur que si on commence à avoir plusieurs insert/delete concourants, la cohérence des données soit mis en péril .. Vous en pensez quoi?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1966070
john8585
Posté le 15-02-2010 à 12:24:49  profilanswer
 

Je sais pas trop il faudrait regarder ce qui se passe a l'insertion d'un nouvel élément mais ca me parait pas scandaleux d'imaginer que dans la logique de construction de l'arbre, à un moment, les lft et rgt soit pas uniques.

n°1966077
esox_ch
Posté le 15-02-2010 à 12:45:46  profilanswer
 

Je sais pas. Moi ça me semble une bonne manière de protéger la base de donnée .. Je vais voir si ça passe sans mettre de contrainte unique comme l'a dit seabee.
Je vais tester aussi la version "better" histoire de voir
merci à vous deux


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 15-02-2010 à 12:45:46  profilanswer
 

n°1966548
thomase
Posté le 16-02-2010 à 16:37:08  profilanswer
 

Je viens de me créer un compte un tadalist, et je comprends pas le hype qu'il y a eu autour. C'est pas terrible. Je trouve que remember the milk est plus ergonomique.
 
EDIT: ha ok avec tadalist on peut faire du "social todo list", mouais.


Message édité par thomase le 16-02-2010 à 16:40:58
n°1966568
thomase
Posté le 16-02-2010 à 17:31:49  profilanswer
 

Est-ce que Rails permet de facilement activer et désactiver une partie d'un formulaire selon le choix d'un dropdown box?

n°1966599
LeRiton
Posté le 16-02-2010 à 19:07:06  profilanswer
 

LeRiton a écrit :

Hébergement Rails pour de petits besoins (site d'une entreprise, faible trafic, pas ou peu de contraintes sur les version tant que c'est du Rails 2.x) ?
 
Sérieux, fiable, éventuellement modulable, boobs...
 
Merci :o


 
Dites voir... Même question mais avec SSL obligatoire (paiement en ligne), mais surtout pour voir si vous avez des retours sur une entreprise française ? J'aime bien prendre mon téléphone quand ça merde, donc au cas où.
 
Merci [:dawa]

n°1966615
seabee
Posté le 16-02-2010 à 20:00:19  profilanswer
 

LeRiton a écrit :


 
Dites voir... Même question mais avec SSL obligatoire (paiement en ligne), mais surtout pour voir si vous avez des retours sur une entreprise française ? J'aime bien prendre mon téléphone quand ça merde, donc au cas où.
 
Merci [:dawa]


Haut de gamme, je connais Typhon qui fait du bon boulot. Ils font de la TMA de luxe pour Rails. Mais c'est pour du besoin spé, pas une offre packagée. Et c'est cher.
 
Sinon en France je sais pas. Aux USA Linode et Slicehost remportent tous les suffrages pour le virtuel.

n°1966616
seabee
Posté le 16-02-2010 à 20:03:18  profilanswer
 

thomase a écrit :

Est-ce que Rails permet de facilement activer et désactiver une partie d'un formulaire selon le choix d'un dropdown box?

Rien à voir avec Rails. C'est du JavaScript.
Écoute l'évènement 'onchange' sur ton select, et modifie la visibilité de ses dépendances en conséquence.
Tu peux le faire plus facilement avec Prototype/jQuery ou directement sans FrameWork.

n°1966618
thomase
Posté le 16-02-2010 à 20:13:19  profilanswer
 

Merci je savais que c'était du javascript, je pensais que Rails aurait un helper tout prêt pour ça mais je n'en trouvais pas, donc je vais faire ça en prototype raw.

n°1967317
thomase
Posté le 18-02-2010 à 17:54:28  profilanswer
 

Est-ce quelqu'un arrive à gérer les centimes (enfin les chiffres après la virgule)? C'est beaucoup plus compliqué que ça en a l'air. Tout ce que j'ai tenté pour le moment est assez laid.

n°1967324
john8585
Posté le 18-02-2010 à 18:18:08  profilanswer
 

En général en programmation on ne gère que des centimes quand on gère des problèmes monétaires, que l'on convertit simplement à l'affichage, ca permet d'éviter tous les problèmes liés aux nombres flottants.

n°1967326
LeRiton
Posté le 18-02-2010 à 18:20:31  profilanswer
 

seabee a écrit :


Haut de gamme, je connais Typhon qui fait du bon boulot. Ils font de la TMA de luxe pour Rails. Mais c'est pour du besoin spé, pas une offre packagée. Et c'est cher.
 
Sinon en France je sais pas. Aux USA Linode et Slicehost remportent tous les suffrages pour le virtuel.


 
J'avais vu Typhon effectivement, j'ai même pas osé demander un devis [:dawa] Merci pour ton retour.

n°1967332
thomase
Posté le 18-02-2010 à 18:43:11  profilanswer
 

john8585 a écrit :

En général en programmation on ne gère que des centimes quand on gère des problèmes monétaires, que l'on convertit simplement à l'affichage, ca permet d'éviter tous les problèmes liés aux nombres flottants.


Merci tu m'as mis sur la voie de la solution!  :bounce:  Alors j'ai tenté un tour de passe-passe avec un before_save pour *100 et ensuite dans la view je divise par 100 et je tronque les 0 des décimales s'il y a lieu. Pour le moment j'ai pas encore trouvé d'edge case qui plante ce concept. J'écrirais un bel article à ce sujet une fois que tous mes tests seront au point et que ça marche à 100%. EDIT: Fail, dans le before_save, les décimales ont déjà été tronquées car l'attribut est un integer  :(  EDIT: un truc est de créer un helper.
 
Sinon ça intéresserait quelqu'un que je pluginify mon générateur de graphique en barres verticales en pure html+css? J'ai créé ça parce qu'Open Flash Chart fait leaker la mémoire de mon FF 3.6 et sature toute la mémoire vive en à peine 1 seconde  :ouch:  C'est super limité forçément, néanmoins ça fait son boulot proprement :jap:


Message édité par thomase le 18-02-2010 à 19:04:46
n°1967341
LePhasme
Les Belges domineront le monde
Posté le 18-02-2010 à 19:10:14  profilanswer
 

LeRiton a écrit :

 

J'avais vu Typhon effectivement, j'ai même pas osé demander un devis [:dawa] Merci pour ton retour.


Au USA en mutualisé tu as dreamhost en vraiment pas cher


Message édité par LePhasme le 18-02-2010 à 19:13:02

---------------
Instagram - Mon PVT en Australie.
n°1968122
thomase
Posté le 22-02-2010 à 12:08:58  profilanswer
 

l'option :add_month_number => true n'est pas prise en compte dans mes date_select. J'ai fais une faute de frappe ou c'est pareil pour vous?

n°1969006
seabee
Posté le 24-02-2010 à 19:02:07  profilanswer
 

C'est désormais officiel, awesome nested set est une grosse  [:ramucho]  
 
Gros effets de bords bizarres et suspects avec cache-money, le genre de bug qui met pas du tout à l'aise.
Je viens de switcher sur better, plus aucun soucis.
 
C'est pas la première fois que je me dis que awesome pue des baskets. J'en ai fini d'essuyer les plâtres.


Message édité par seabee le 24-02-2010 à 19:02:22
n°1969784
thomase
Posté le 26-02-2010 à 19:05:33  profilanswer
 

En pratique attr_accessible c'est un peu pénible. Est-ce que certains d'entre-vous font du filtrage au niveau du controlleur plutôt?

n°1969787
thomase
Posté le 26-02-2010 à 20:07:42  profilanswer
 

avec attributes= on peut bypasser attr_accessible :)

n°1969882
seabee
Posté le 27-02-2010 à 18:15:33  profilanswer
 

thomase a écrit :

avec attributes= on peut bypasser attr_accessible :)


attributes=({attrs_hash}, false)
Mais en général, ils sont protégés pour une raison :o
En tout cas ça ressemble à du code-smell.


Message édité par seabee le 27-02-2010 à 18:16:54
n°1969889
thomase
Posté le 27-02-2010 à 18:41:22  profilanswer
 

Côté admin et dans les tests c'est assez saoûlant de devoir taper:
 

Citation :

user = User.new
user.state = "admin"
user.machin = truc
...
use.save


Mais bon si on ne tape pas de tests, on ne s'en rend pas compte  :whistle:

n°1969922
Skateinmar​s
Posté le 27-02-2010 à 23:53:21  profilanswer
 

thomase a écrit :

Côté admin et dans les tests c'est assez saoûlant de devoir taper:
 

Citation :

user = User.new
user.state = "admin"
user.machin = truc
...
use.save


Mais bon si on ne tape pas de tests, on ne s'en rend pas compte  :whistle:


 
Bof pour les tests t'as factory girl et autres :o


---------------
Feedback HAV
n°1971213
thomase
Posté le 04-03-2010 à 15:41:53  profilanswer
 

Dans le cas de la STI, est-ce que l'attribut "type" est protected automatiquement? Parce que j'ai un modèle et je n'arrive pas à changer son attribut type et je ne comprends pas pourquoi.
 
EDIT: oui c'est auto bloqué.  :sarcastic:


Message édité par thomase le 04-03-2010 à 15:43:36
n°1971623
thomase
Posté le 06-03-2010 à 18:11:10  profilanswer
 

J'ai un petit problème de SQL injection. Je désire dynamiquement générer la requête suivante:

Citation :

find(:all, :conditions => ["? = ?", attribute, value])


Mais ça ne marche pas.
 
Par contre la requête suivante fonctionne mais est ouverte aux injections:

Citation :

find(:all, :conditions => ["#{attribute} = ?", value])


 
Quelqu'un a une idée comment éviter l'injection SQL? je pourrais utiliser une regexp pour filtrer attribute, mais si quelque chose de plus propre existe je suis preneur.
 
Merci d'avance  :)

n°1971625
Rioji
Posté le 06-03-2010 à 18:17:18  profilanswer
 

Je te conseille searchlogic
Tu as même un railscast dessus http://railscasts.com/episodes/176-searchlogic

n°1971631
thomase
Posté le 06-03-2010 à 18:53:05  profilanswer
 

Bof pour searchlogic, je préfère hardcoder mes named_scope.
 
Sinon somme solution je filtre mon attribute en le comparant aux noms de colonnes du Model sur lequel se fait la recherche, ça me suffit comme protection.

n°1973007
thomase
Posté le 11-03-2010 à 15:07:42  profilanswer
 

Le STI me casse souvent les pieds en ce qui concerne la génération d'url. Ex:
 
Product < AR
Membership < Product
 

Code :
  1. form_for @membership do |form|


Va vouloir poster le formulaire à MembershipsController, mais si je veux poster à ProductsController je fais comment? Je fourni l'option :url, mais si ce même formulaire gère la création et la mise à jour d'un objet, il faut gérer #create/#update avec des if moches, ou alors sortir le form_for du partial _form.html.erb, mais bof.
 
Ma solution pour le moment est de tricher, et de renommer la colonne "type" en "kind" et de gérer ça à la main avec des if kind == "Membership". C'est assez propre, mais si vous avez mieux à proposer pour recycler les controlleurs dans vos models en STI je suis preneur.  :)
 
EDIT: une solution serait de résoudre ce petit souci:
 
Je sais que le product avec id 10 a un type "Membership"
 
Product.find(10) => ça me renvoit un objet de la classe Membership, ce que je ne voulais pas.
 
Y-a-t'il un moyen de dire à Rails que lorsque je fais Product.find(10) je veux un objet de classe Product même si je sais que c'est un Membership?
 
EDIT: Yep j'ai trouvé!

Code :
  1. Product.find(10).becomes(Product)


Je connaissais pas, et c'est vachement pratique avec le STI  :)

Message cité 1 fois
Message édité par thomase le 11-03-2010 à 15:36:06
n°1973729
seabee
Posté le 14-03-2010 à 20:14:11  profilanswer
 

thomase a écrit :

Bof pour searchlogic, je préfère hardcoder mes named_scope.

 

Sinon somme solution je filtre mon attribute en le comparant aux noms de colonnes du Model sur lequel se fait la recherche, ça me suffit comme protection.

Si tu whitelist tes attributs accessibles oui. Sinon méfiance sur un site exposé.  [:parskeu]

 

Objectivement, Searchlogic est une tuerie. S'en passer c'est souffrir inutilement. Il te fait gagner un temps de dingue niveau formulaire de recherche (suffit par ex. de donner comme name un simple 'first_name_like_or_last_name_begins_with' et il gère tout le bouzin sans coup faillir. Sans compter que tu peux passer tes propres named_scopes dans ton formulaire de recherche :love:
C'est un des trucs les plus classieux que j'ai vu depuis un certain temps. Sans compter que la doc tient sur une page et couvre tous les cas... En 6 mois d'utilisation je n'ai pas eu envie de soumettre un seul patch, c'est un peu une première :lol:

thomase a écrit :

Le STI me casse souvent les pieds en ce qui concerne la génération d'url. Ex:

 

Product < AR
Membership < Product

 
Code :
  1. form_for @membership do |form|


Va vouloir poster le formulaire à MembershipsController, mais si je veux poster à ProductsController je fais comment? Je fourni l'option :url, mais si ce même formulaire gère la création et la mise à jour d'un objet, il faut gérer #create/#update avec des if moches, ou alors sortir le form_for du partial _form.html.erb, mais bof.

 

Ma solution pour le moment est de tricher, et de renommer la colonne "type" en "kind" et de gérer ça à la main avec des if kind == "Membership". C'est assez propre, mais si vous avez mieux à proposer pour recycler les controlleurs dans vos models en STI je suis preneur.  :)

 

EDIT: une solution serait de résoudre ce petit souci:

 

Je sais que le product avec id 10 a un type "Membership"

 

Product.find(10) => ça me renvoit un objet de la classe Membership, ce que je ne voulais pas.

 

Y-a-t'il un moyen de dire à Rails que lorsque je fais Product.find(10) je veux un objet de classe Product même si je sais que c'est un Membership?

 

EDIT: Yep j'ai trouvé!

Code :
  1. Product.find(10).becomes(Product)


Je connaissais pas, et c'est vachement pratique avec le STI  :)


Une solution pour tes forms c'est de faire un helper qui gère ton form_for avec tous les cas.
Sur le fond tu as raison, et c'est pas le seul soucis avec la STI, loin s'en faut. C'est le résultat d'une cabale un peu zarb qui date d'il y a bien 4 ans. Depuis ce temps jadis, les patchs proposés pour résoudre les inconsistances d'ActiveRecord avec la STI avaient tendances à moisir un poil. Ca va mieux depuis quelques temps. Je pense que ActiveRecord 3.0 sera plus STI-friendly.

 

Sinon dans cet ordre d'idée je suis en train de virer toutes les actions edit/new de mes controllers/vues dans mon Back-office.
Du coup, pour faire un new, je fais un show de new, genre admin_articles_path(:new) et admin_articles_path(@article) pour le edit.
Le new/edit du controller ressemble à un simple

Code :
  1. def show
  2.   @article = params[:id] == 'new' ? Article.new : Article.find(params[:id])
  3. end


Et je n'ai plus de render :form avec de la duplication de code.
L'idée m'est venu quand j'ai réalisé que dans le BO, le edit avait tendance à remplacer le show, et que le form du edit et du new se ressemblait de plus en plus, pour de bonnes raisons.

 

C'est bien plus Restful [:top]


Message édité par seabee le 14-03-2010 à 20:15:36
n°1981503
boblenain2​00
Posté le 07-04-2010 à 10:22:33  profilanswer
 

Certains sont passés sur Rails3 ici ? (git ou beta2 ?)

n°1981506
john8585
Posté le 07-04-2010 à 10:26:07  profilanswer
 

Testé en speed ce w-e, j'ai galéré avec RVM pour installer la "preview-2" de ruby1.9 (quitte à etre "on the edge" autant y aller pour de bon...).
J'ai fini par m'en sortir et j'ai réussi à "porter" un début d'appli qui tournait sous la beta1.
 
Pas eu le temps de fouiner plus que ça  pour le reste.

n°1981507
seabee
Posté le 07-04-2010 à 10:27:54  profilanswer
 

boblenain200 a écrit :

Certains sont passés sur Rails3 ici ? (git ou beta2 ?)


J'y toucherai pas avant la RC et une compatibilité totale avec Ruby 1.8.7
Perte de temps potentielle énorme.

n°1981523
boblenain2​00
Posté le 07-04-2010 à 11:10:21  profilanswer
 

seabee a écrit :


J'y toucherai pas avant la RC et une compatibilité totale avec Ruby 1.8.7
Perte de temps potentielle énorme.


 
Je confirme, ca pique en ce moment au niveau des gems, de la doc et tout  [:tartineauxcrevettes:3]

n°1981536
john8585
Posté le 07-04-2010 à 11:46:23  profilanswer
 

boblenain200 a écrit :


 
Je confirme, ca pique en ce moment au niveau des gems, de la doc et tout  [:tartineauxcrevettes:3]


 
pluzun, mais ca reste sympa pour geeker, et se préparer, RVM bien utilisé ( http://lindsaar.net/2010/3/31/bundle_me_some_sanity ) permet d'éviter pas mal de problèmes quand même, mais c'est clairement time consuming :)

n°1981546
seabee
Posté le 07-04-2010 à 11:57:53  profilanswer
 

boblenain200 a écrit :


 
Je confirme, ca pique en ce moment au niveau des gems, de la doc et tout  [:tartineauxcrevettes:3]


Pour le moment, je préfère me préparer en passant mon appli en cours de dev sous bundler et en vérifiant la compatibilité des plugins.
Et je refuse catégoriquement l'amalgame Rails3 + Ruby 1.9
 
Une source d'emmerde à la fois, merci. :o

n°1981560
LePhasme
Les Belges domineront le monde
Posté le 07-04-2010 à 12:41:23  profilanswer
 

J'ai appris rails il y a 2 ans, j'ai l'impression que je dois tout réapprendre tellement ça a changé [:tinostar]


---------------
Instagram - Mon PVT en Australie.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  24  25  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