FRESH → the Hive

Fresh from the Hive is Studio Melipone's weblog about visual delights, startup love and much more.

As opposed to whatever SEO stuff you should pay attention to this blog is run in a complete natural non sense. Enjoy!

Why don't you grab our RSS?

 

#rails Validations associatives

Lorsqu’on a une application web avec des objets associés les uns aux autres à 3 ou 4 niveaux d’imbrication et qu’on utilise la magie de Rails pour créer/Mettre à jour tout ce beau monde en une ligne qui va sauver tout ça en cascade grâce aux associations, on peut avoir des surprises. Certaines validations ne sont carrément pas effectuées ! (comme lorsqu’on utilise update_attribute)

So much suspense, I wanna read more!

diaryrails

 
 

#rails I18n ActiveRecord

La documentation sur comment traduire vos modèles et validations est vraiment super bien faite, mais il y a toujours des cas un peu “sioux” ou il faut juste être au courant sinon on risque de chercher longtemps pour pas grand chose…

Avec des modèles en cascades qui se référencent les uns les autres, le retour des validations peut-être parfois un peu “tricky” pour savoir quoi traduire où…
Si on reprend le schéma suivant :
  1. class Upshot < ActiveRecord::Base
  2.  
  3. belongs_to :owner, :foregin_key => “user_id”, :class_name => “User”
  4. has_many :clients, :through => :upshotclients, :source => :user
  5.  
  6. end
  7.  
  8. class Upshotclient< ActiveRecord::Base
  9.  
  10. belongs_to :upshot
  11. belongs_to :user
  12. validates_presence_of :user
  13. validates_associated :user
  14.  
  15. end
  16.  
  17.  
  18. class User < ActiveRecord::Base
  19.  
  20. has_many :upshots
  21. has_many :upshotclients
  22.  
  23. validates_presence_of :email
  24. validates_format_of :email, :with => Authentication.email_regex
  25. validates_uniqueness_of :email
  26.  
  27. end

Les erreurs de validation retournées lorsque je soumettrai un upshot avec un client dont le user associé n’a pas un email valide sera l’association Client défini dans mon has_many, et non pas son objet User….

Comment alors traduire une association ??
Et bien en fait ActiveRecord considère ça comme un attribut de votre objet, donc vous pouvez le traduire comme tel :
  1. activerecord:
  2.     upshot:
  3.         client: “le client”

“Tricky”, n’est-il pas ?

diaryrails

 
 

Heroku : Déployer un projet sur plusieurs environnements

Hello,

Un post technique aujourd’hui :)

Sur plusieurs de nos projets persos et clients, nous déployons nos applis sur Heroku, une plateforme Cloud dédiée aux applis Ruby (donc Rails ou Sinatra).
La facilité de déploiement est assez bluffante et c’est un bonheur à utiliser tous les jours.

Malheureusement, pour les plus techos d’entre nous il y a certaines choses pas très pratiques.

Pour tout nos projets, nous avons 3 environnements minimum : un environnement de développement (sur notre machine), un environnement de staging et un environnement de production. Les environnements de staging et de production se devant être aussi similaires que possible.

C’est pourquoi il serait intéressant de pouvoir déployer un même projet sur 2 environnements heroku distinct.

Cela n’est pas chose aisée du fait des limitations de heroku (limitations directement liées à sa simplicité) mais heureusement, j’ai trouvé ce post très bien fais qui explique pas à pas comment avoir plusieurs environnements sur lesquels déployer son projet heroku.

Je vous avais prévenu, c’est techos.

Pour ceux qui ont compris, enjoy :)

diaryrailsherokudeploy

 
 

#rails est dans la presse !

Nous somme assez fier de vous annoncer que le dernier numéro (n°135-novembre) du magazine “Programmez!” vient de sortir avec un 1er article d’une série de 3 sur Ruby on Rails.

Ecrit par vos serviteurs, il permettra au plus grand nombre, nous l’espérons, d’apprendre et de comprendre cette technologie que nous affectionnons tant !

Si vous avez des questions et/ou remarques n’hésitez surtout pas !

Le magazine a aussi mis en place un forum dédié à l’article : http://www.programmez.com/forum/viewtopic.php?f=89&t=2060

 
 

Rails et le parsing XML…

XML c’est un peu comme la guerre, c’est moche, c’est sale, et on sait que c’est mal, mais des fois on a pas trop le choix…

Alors on a un fichier XML, on va devoir transformer les données qui y sont en objets métiers de notre côté, ou on veux simplement faire des imports de données… Quoi qu’il en soit on va devoir trouver et choisir un parseur… Quand il ne fait pas le faire soit même ! Bref une souffrance, un calvaire !

- Tu t’égare jeune padawan !
- Que.. Quoi ? Je ne comprends pas… je dois bien parser mon xml maitre !
- Fais confiance à Rails Luke !

La fonction from_xml existe depuis très longtemps pourtant, et on en entend pas parler ! Etonnant ! Et cela s’utilise très facilement :

  1. myFile = File.new(“/Users/gdurelle/Desktop/monfichier.xml”, “r+”)
  2. myHash = Hash.from_xml myFile.read
  3.  
  4. puts myHash[“baslise_mere”][“sous_balise”].to_json

Et voilà ! C’est vrai qu’il n’y a pas beaucoup de documentation sur cette fonction, mais on l’apprivoise tellement naturellement et facilement que ce n’est pas vraiment nécessaire…

railsxml