Sunfox

Le journal de Sunny Ripert


Articles mot-clétés rails

Traduire ses routes dans Rails

juillet 8th, 2015 , 1 commentaire.

Photo de portes de Fushimi Inari-taisha

Les URLs de votre site sont visibles et méritent autant d’attention que le reste de votre interface. Dans ce cas, pourquoi avoir des chemins en anglais uniquement alors que le reste de votre site est traduit ?

https://monsite.com/en/books/1/edit
https://monsite.com/fr/books/1/edit
https://monsite.com/es/books/1/edit

Je trouve que les adresses suivantes, traduites, sont plus élégantes et compréhensibles par tous :

https://monsite.com/en/books/1/edit
https://monsite.com/fr/livres/1/éditer
https://monsite.com/es/libros/1/editar

Mieux, non ?

route_localize

Pour avoir des URLs pareilles avec Ruby on Rails sans pour autant tout dupliquer, j’ai développé la gemme route_localize.

Une fois installée, il suffit d’entourer les routes à traduire dans config/routes.rb :

scope localize: %w(en fr es) do
  resources :books
end

Vous pouvez ensuite traduire les chemins que vous voulez dans vos fichiers de localisation :

fr:
  routes:
    books: livres
    edit: éditer

Et voilà ! Magie !

Enfin, si vous souhaitez faire passer vos utilisateurs d’une langue à l’autre sur votre site un petit helper prends la langue voulue et vous retourne le chemin traduit.

Enregistrer la langue d’un utilisateur avec Devise

juillet 6th, 2015 .

Daim photographié

J’ai créé une petite gemme Ruby. Son petit nom c’est devise-track_locale. Si vous utilisez Ruby on Rails et Devise sur un site multilangue, cela vous permets d’enregistrer la dernière langue utilisée par l’utilisateur, automatiquement.

C’est un module Devise, donc son installation est aussi simple que d’ajouter :track_locale dans la liste de modules Devise et un champ locale sur les utilisateurs.

Ce n’est pas grand chose, mais plutôt que de garder cette fonctionnalité sur un site j’en ai fait une petite librairie externe, réutilisable, open-source, testée. Et je compte bien en faire autant pour tous ces petits développements qui sortent des fonctionnalités du cœur de mes sites.

Rails et Emails

septembre 4th, 2014 , 2 commentaires.

parisrb

À la dernière conférence Paris.rb je présentais 6 choses à arrêter de faire si vous envoyez des emails avec votre application Ruby on Rails.

Suite de l’article…

Ajoutez la couleur dominante derrière vos images

juillet 25th, 2014 , 3 commentaires.

Si vous pouvez extraire la couleur dominante d’une photo, une petite touche sympa à ajouter sur votre site est de se servir de celle-ci tant que votre image n’est pas chargée.

Voici un exemple sur cults3d.com :

Chargement d'une page sur Cults 3D

HTML

En HTML, le plus simple est d’appliquer la couleur dominante sur son style inline. C’est cette couleur qui apparaîtra durant le chargement

<img style="background: #f3de56" src="…" width="120" height="120" />

Avec Rails

Si vous utilisez la librairie CarrierWave dans votre application Rails, vous pouvez extraire facilement la couleur dominante à chaque upload grâce à ma gemme ruby carrierwave-color.

Avec WordPress

Si vous utilisez WordPress, ajoutez l’extension dominant-color et ça sauvegardera la couleur dominante à chaque upload de medias. Vous pourrez même éditer la couleur choisie, directement dans l’administration.

EasouSpider le robot qui ne sait pas parler l’utf8

juillet 23rd, 2014 .

Photo de Mathieu mangeant une araignée

Ces derniers jours je recevait une trentaine d’emails par jour m’indiquant qu’une erreur avait éclatée sur cults3d.com. Ces exceptions provenaient toutes d’un robot chinois, EasouSpider, qui parcoure le Web pour remplir son moteur de recherche.

Ce robot ne sait pas parler l’unicode comme tout le monde et envoie dans les formulaires des valeurs mal encodées, ce qui fâche Ruby on Rails. Le problème est surtout que Rails ne traite l’erreur que bien trop tard, lorsqu’on essaie de lire les paramètres de la requête. Et là l’erreur est une incompréhensible ArgumentError :

invalid %-encoding (Q/B0*ÜHܘ0ÅÅ1 0 U GB1 0 U.…

Suite de l’article…

Retrouver les clefs de localisation facilement avec Rails

juillet 17th, 2014 , 3 commentaires.

Photo de Drapeaux Lego

J’utilise Locale avec Ruby on Rails pour permettre à n’importe qui dans l’équipe de modifier les textes d’un site quelle que soit la langue.

Néanmoins, ce n’est pas évident pour celui qui n’a pas le code sous les yeux de retrouver quel texte correspond à quelle clef.

Suite de l’article…

ActionMailer n’aime pas vos URLs (par défaut)

juillet 14th, 2014 .

Faire un lien dans un email dans une application Ruby on Rails devrait être aussi simple que de faire un lien dans le reste de l’application, non ?

Photo of a miniature train, by Sunny

Suite de l’article…

Erreurs 404 dynamiques dans Rails 3

novembre 14th, 2012 .

Utiliser un fichier statique public/404.html dans Rails est très vite limitant. Si on veut utiliser le layout normal de l’application, des informations dynamiques comme des menus, le nom de l’utilisateur courant ou un formulaire de recherche il faut rendre ces erreurs dynamiques.

Pour ça il faut intercepter deux erreurs qui produisent des 404 : les infos nos trouvées dans la base via ActiveRecord::RecordNotFound et les routes qui n’existent pas avec ActionController::RoutingError.
Suite de l’article…

RailsCamp Paris 2

mars 8th, 2009 , 1 commentaire.

Logo de RailsCamp Paris 2

L’année dernière j’inaugurais le premier Barcamp autour de Rails sur Paris. Cette année la deuxième édition du RailsCamp Paris a eu lieu ce samedi dans les locaux de Sun. Les locaux étaient magnifiques et les salles de conférences avaient la bonne taille pour ces petites présentations d’une heure.

Dans cette édition moins de course entre chaque conférence et plus de discussions de couloirs extrêmement intéressantes. Différence dans les discussions par rapport à l’année dernière : github est beaucoup plus cité, louangé et rares sont ceux qui ne s’en servent pas aujourd’hui :)

La communauté Rails se porte bien, ça ne manque pas d’offres d’emploi et malgré que les inscriptions aient atteint les 100 participants assez rapidement on rencontre malgré tout de nouvelles têtes.

Je repars avec de bonnes listes de plugins, des bonnes idées de trucs à faire avec CouchDB, des promesses de fork et une folle envie de me replonger dans du Ruby :)

Merci à l’association Ruby France et aux nombreux sponsors de faire vivre cet événement (et de nous fournir en montagnes de pizzas !).

Rails Party, Paris On Rails 2008 et Apéro Ruby

décembre 3rd, 2008 , 3 commentaires.

Compte-rendu de trois rencontres autour de Ruby et Rails.

Rails Party, pour les geeks

Les conférenciers de la Rails Party on eut entre 40 et 5 minutes pour nous parler de : RSpec, bonnes pratiques Active Record, Facebooker, indexation de bases de données avec Sphinx, Lazy pagination, YAPS, migration vers Rails 2.2, i18n dans Rails 2.2, déploiement d’une très grosse appli Rails et desktop. Ces conférences était extrêmement intéressantes et n’avaient rien à envier aux conférences payantes du lendemain ! Domamge qu’il ait fallu parfois tendre l’oreille vers deux bonnes présentations en même temps.

Chapeau bas à Jean-François et au reste de l’équipe de Ruby France d’avoir organisé cette rencontre un brin informelle et surtout gratuite en si peu de temps.

Paris On Rails, pour les décideurs

[Logo Paris On Rails]

DHH, le créateur de Rails a répondu à nos questions depuis Chicago. Il est bon de le voir s’emporter (il a dit bullshit, je suis témoin !) quand on lui a posé une question sur Merb. Pour ma part j’ai été plus politiquement correct, je lui ait demandé quel t-shirt il portait :]

Michael Koziarksi membre de l’équipe de développement de Rails, nous faisait une conférence sur les performances de Rails. Extrêmement instructif mais en anglais avec un accent néerlandais débité à une vitesse folle. Je relirais ses diaporamas avec grand intérêt.

Don’t be a Ruby developer

J’ai particulièrement apprécié la vidéo-conférence de Russ Olsen, l’auteur du livre Design Patterns in Ruby pour ces anecdotes sur les tous premiers pots en terre glaise décorés comme des paniers, sur son fils de 8 ans et lorsqu’il rappelait à quel point il ne fallait jamais s’arrêter sur une technologie et toujours voir de l’avant. Si j’aime la communauté Ruby c’est aussi parce qu’on y parle beaucoup d’Erlang, Smalltalk, io et autres langages.

Mathieu Fosse nous vantant les mérites de la librairie JavaScript Mootools et Didier Lafforgue de Liquid, un moteur de rendu de pages bien trop complexe. Mais aucun des deux n’a réussi à me convaincre d’utiliser leur techno.

Guillaume Desrat a fait une très chouette présentation avec les nouveautés de Ruby 1.9, (avec un interpréteur 4.5 × plus rapide que Ruby 1.8 !) qui donne envie d’y passer.

Les tests, c’est bien

On retrouvait Jean-Michel Garnier pour nous parler des tests d’interface Web qu’il n’aimait pas faire l’année dernière. Ces tests d’interfaces d’exemples étaient assez simples pour que ça me convainque d’en faire, au moins un minimum. Merci Jean-Michel d’être passé me dire bonjour :). Philippe Hanrigou, ensuite, présentait les tests d’acceptation en distribuant les tests avec Selenium Grid. On en retiens que les tests c’est bien mais que c’est long et qu’il faut bien se garder d’avouer qu’on en fait pas…

Apéro Ruby, pour les piliers de bar

C’était l’occasion de se détendre, de manger une soupe à l’oignon et de continuer de très intéressantes discussions autour de Ruby, en petit comité, avec des habitués de Ruby France.


Merci aux organisateurs, sponsors et à Julie et ma boîte Cosmic Communication de m’avoir offert la journée pour aller aux conférences payantes de Paris On Rails. C’est à ça qu’on reconnaît les entreprises dans lesquelles on aime bosser :)


:D Sunny Ripert

est un développeur web vivant à Paris.

CV, me contacter


Textes et contenus sous licence Creative Commons.
Site crée par mes soins et propulsé par WordPress.