Développeur Web RoR

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 19 août 2015

Comment connaitre les changements qu'il y a eu sur un objet ActiveRecord immédiatement après un save ?


Avant de faire un save il est possible de connaitre les changements/savoir si un objet ActiveRecord a changé en appelant .changes ou changed?
Mais après un save ces fonctions renvoient respectivement [] et false. Il existe néanmoins la méthode previous_changes qui va renvoyer un hash avec la liste des attributes changés ainsi que leurs valeurs précédentes et actuelles.

mercredi 17 juin 2015

Comment ne plus utiliser le default_scope ?

Le default_scope est un scope qui est appelé implicitement à chaque requête ActiveRecord sur le modèle en question.

Le problème c'est qu'on l'oublie vite celui-là... Vaut mieux l'utiliser quand on a de bonnes raisons (un order systèmatique)...

En cas de nécessité absolu de ne pas utiliser le default_scope (c'est là qu'on doit légitimement se poser des questions, hein), il existe une méthode : unscoped. Elle vire tous les scopes précédemment utilisés, donc attention à l'ordre dans lequel vous le chaînez.

Documentation officielle sur ces deux méthodes : http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Default/ClassMethods.html#method-i-default_scope

vendredi 5 juin 2015

Commentaire multiligne en Ruby

Je me souviens avoir cherché, il y a quelques temps sans jamais avoir trouvé une réponse qui fonctionne. Un peu la honte après 5-6 ans de Ruby... Heureusement que ça ne tue pas la honte ^^.

=begin

def une_methode_en_commentaire

  puts "Bidule"

end

=end

La petite subtilité que je n'avais peut-être pas saisi à l'époque est qu'il ne faut pas mettre d'espace avant les "=" sinon ça ne fonctionne pas !

vendredi 29 mai 2015

Transformer votre CSS en SCSS

Il peut arriver de vouloir migrer un "vieux" CSS en SCSS pour factoriser les variables et centraliser les urls des ressources par exemple.

Voici un outil complet qui contient pas mal de paramêtre : http://sebastianpontow.de/css2compass/

Plus d'excuses, hein ;)

mardi 14 avril 2015

Utiliser Meld sous linux pour voir un diff git sur un fichier local avec sa précédente version.

L'article d'origine est situé ici : https://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy

Je me permets ici juste d'écrire le bout de script en ruby au lieu de python (attention c'est d'une grande complexité ^^).

Donc pour résumer l'article, il faut écrire un script qui renvoie deux paramètres au lieu de sept.

nano /home/sylvain/diff.rb

Mettre les deux lignes ci-dessous dans le script (attention il s'agit d'anti-quote) :

#!/usr/bin/env ruby

`meld #{ARGV[0]} #{ARGV[1]}`

sudo chmod +x /home/sylvain/diff.rb

git config --global diff.external /home/sylvain/diff.rb

git diff monfichier.rb

Ça permet quand même d'avoir un diff plus visuel.

dimanche 5 avril 2015

Texte illisible dans RubyMine sur Ubuntu

Les textes de l'éditeur de Rubymine sont illisibles (font des menus et éditeur...) ?

Pas de panique il faut ajouter les lignes en gras ci-dessous dans le fichier RubyMine-7.0.4/bin/rubymine64.vmoptions

-Xms128m

-Xmx512m

-XX:MaxPermSize=250m

-ea

-Dsun.io.useCanonCaches=false

-Djava.net.preferIPv4Stack=true

-Djsse.enableSNIExtension=false

-XX:+UseConcMarkSweepGC

-XX:SoftRefLRUPolicyMSPerMB=50

-Dawt.useSystemAAFontSettings=lcd

-Dswing.aatext=true

-Dsun.java2d.xrender=true

vendredi 30 janvier 2015

Sprockets::FileNotFound in Beautiful#dashboard : couldn't find file 'jquery.ui.all'

Pour corriger l'erreur Sprockets::FileNotFound in Beautiful#dashboard : couldn't find file 'jquery.ui.all' dans une application qui utilise beautiful_scaffold il faut remplacer (dans application-bs.js et application-bs.css) : 

= require jquery.ui.all 

Par  

= require jquery-ui

Bon code.

- page 1 de 47