Liaison de 1 à 1 en Ruby on Rails

Pour réaliser une telle liaison, il est simple de s’apercevoir que l’on peut mettre l’identifiant de l’un dans la table de l’autre et ceci sans contrainte si ce n’est le sens même de cette liaison, exemple :
Prenons une personne qui possède une voiture, il est simple de penser que la personne possède une voiture et non que la voiture possède une personne. On peut donc indiquer que la voiture est une caractéristique de la personne (Objet avec plus d’importance). On va donc stocker la liaison dans la table personne avec l’identifiant de la voiture.

En Ruby on Rails, 2 liaisons belongs_to ne fonctionne pas, il faut donc ajouter une colonne voiture_id dans la table personne puis indiquer une liaison :

belongs_to :voiture

dans le model de Personne et une liaison :

has_one :personne

dans le model de Voiture.

Ainsi, vous venez de créer une liaison de un à un entre une personne et une voiture.

Gestion Favicon sur les navigateurs

Généralement déposer un fichier favicon.ico à la racine de votre site permet à celui-ci de l’utiliser automatiquement comme favicon.

Exception sous IE si le .ico n’est pas créé correctement, dans ce cas le favicon ne s’affiche pas.

Une solution efficace permettant de récupérer un favicon lisible par IE, sur ce site http://www.convertico.com

Après avoir remplacé votre ancien favicon, un petit coup de « vider votre cache » et normalement plus de soucis.

Nouvelles typos sur le Web

Vous en avez assez de Arial, Verdana et Trebuchet sur vos sites web ?  Alors passez à @font-face ! Très simple d’utilisation à l’aide du site www.fontsquirrel.com.

Démonstration :
– Allez sur le site www.fontsquirrel.com/fontface/generator, ajoutez une typo (au format otf) puis générez votre kit .
– Dé-zippez ce dernier et ouvrez le fichier stylesheet.css. Copiez la propriété @font-face dans votre feuille de style habituelle :
@font-face {
font-family: "Typo";
font-style: normal;
font-weight: normal;
src: url("typo.eot?") format("eot"),
url("typo-webfont.woff") format("woff"),
url("typo-webfont.ttf") format("truetype"),
url("typo-webfont.svg#webfontrTwnpuIE") format("svg");
}

– Copiez les fichiers de police fournis dans le zip (formats eot, woff, ttf et svg) dans le même répertoire que votre fichier css.

Et voilà, il n’y a plus qu’à tester !

No more IE 6 en Ruby

Internet Explorer 6 est bien ancien et ne respecte pas énormément de standards du web, il convient donc de ne plus continuer à intégrer son site internet pour ce genre de navigateur. Il est donc possible de proposer à un utilisateur possédant une telle version d’Internet Explorer de changer et mettre à jour vers un navigateur plus récent. Pour cela il suffit de détecter que le navigateur utilisé est bien IE 6. Ruby propose cette détection via le code suivant :

<% if request.user_agent.try(:include?, « MSIE 6.0 ») %>
Votre message et un lien pour mettre à jour le navigateur.
<% end %>

Comme vous pouvez le remarquer le code proposé vous permet donc de détecter le navigateur utilisé par l’internaute, il suffira de changer la chaine à rechercher pour les autres navigateurs. Ensuite, une fois que la détection est vérifiée, il vous suffi d’afficher un joli message invitant l’internaute à modifier la version de son navigateur avec un lien vers cette nouvelle version et le tour est joué.

Afficher de l’html généré en Rails 3

Avec Rails 2, pour afficher une variable contenant de l’html (par exemple généré par TinyMCE), rien de plus simple :

Avec Rails 3, c’est un peu plus compliqué. La ligne de code précédente, affichera le texte de la variable brut, sans le style html mais avec les balises en tant que texte. Pour parer à ce problème, deux solutions existent :

Et voilà !

Communication entre Flash, Javascript et l’internaute

Dans une animation flash / swf, intégrée sur une page html, rien de plus simple d’utiliser des fonctions prédéfinies en javascript. Pour cela, il suffit d’écrire en ActionScript :

Plus compliqué, exécuter du code suite à une action de l’internaute dans l’animation flash.

  1. Créer un fichier javascript qui contiendra toutes les fonctions utiles.
  2. Appeler le fichier .js entre les balises <head> du fichier html.
  3. En actionscript, faire appel à la fonction javascript via getURL.

Problème getURL et Internet Explorer

Pour faire appel à du javascript dans flash, on utilise getURL. Parfois, avec Internet Explorer, cette fonction ne marche pas. Pour parer à ce problème, il suffit de remplacer :

par

Bien entendu, il est possible de recommander à nos internautes d’utiliser un véritable navigateur, tel Firefox 😉

Parser une URL avec Ruby

Il est très simple de parser une URL sous Ruby. En parsant l’adresse grâce aux points de séparation, comme pour www.domain.com, l’extension sera le dernier élément du tableau ainsi créé.

Du coup, il devient simple d’affecter une variable de session pour la langue du site en fonction de l’extension du nom de domaine :

Et voilà !

Tri « Sort » avec plusieurs paramètres sur un array en ruby

Ruby permet de réaliser des tris sur les tableaux d’objets de manière simple et rapide :

Mais il peut arriver que ce simple tri ne suffise pas s’il est effectué sur un attribut non unique, par exemple un libellé ou un nom, il faut dans ce cas ajouter un second paramètre pour les cas « d’égalité ».

Ruby permet facilement cela :

Et voilà, votre tableau sera en premier lieu trier par le premier paramètre puis en cas d’égalité l’ordre se fera via le second paramètre.