Développeur Web RoR

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

Tag - rails3

Fil des billets

mercredi 25 juillet 2012

Beautiful Scaffold version 0.1.1

Plein de nouveautés dans Beautiful Scaffold. Tout d'abord les versions ne sont pas compatibles entre elles, donc vous ne devez pas changer la version de beautiful-scaffold dans votre Gemfile.

Voici les nouveautés / modifications :

- Remplacement du thème par le Bootstrap Twitter (facilement modifiable à qui connait le bootstrap)

- Correction de bug i18n sur "yes" et "no" et "are_you_sure"

- Ajout du filtrage des colonnes dans les tableaux

- Ajout d'une méthode dashboard comme page d'accueil ainsi que la route dans le route.rb

- Correction d'un bug sur les clés étrangères (pour le generateur beautiful_migration)

- Affichage de 5 champs par défaut du model dans les tableaux

- Helper pour faire des dropdown menu (bootstrap)

- Ajout d'icons

J'espère que cette nouvelle version vous plaira autant qu'à moi :-)

mercredi 11 avril 2012

ActiveResource Rails 3 et Rails 3.2 : 406 not Acceptable

J'utilise ActiveResource entre deux applications web. Je suis en train de migrer l'application de rails 3.0 vers rails 3.2 et là j'ai une erreur :

ActiveResource::ClientError: Failed.  Response code = 406.  Response message = Not Acceptable.

Le problème vient du fait que rails 3.2 fait ses requêtes par défaut avec le format json. Mais rails 3.0 lui faisait ça par défaut avec xml. Il faut donc faire précéder le choix du format avant la requête :
Product.format = ActiveResource::Formats::XmlFormat
Product.all
Dans cet exemple Product est un ActiveResource qui se connecte à une autre appli rails.
Et là ça marche !

mercredi 25 janvier 2012

Créer une application rubyonrails avec une version spécifique de rails

Comment faire pour utiliser une version spécifique de rails ? Ce n'est pas très compliqué : rails _VERSION_.

Exemples 

rails _3.0.7_ new myapp

rails _3.1.3_ new myapp

rails _3.2.0_ new myapp

Pour connaitre les versions de rails installées sur le système il suffit de faire :

gem list rails

Le but était pour moi de vérifier les différences entre des squelettes d'appli rails sous différentes versions. N'oubliez pas : "meld" pour faire des diff de fichiers sous linux c'est top.

vendredi 9 décembre 2011

FakeWeb : un gem qui permet de simuler une réponse via Net::http en ruby

Le gem est apparu dans un railscast, il n'y a pas longtemps.

Voici la doc : http://fakeweb.rubyforge.org/ qui est très bien faites d'ailleurs. Pratique pour les tests unitaires et fonctionnels de méthode qui utilise une API distante.

Article à lire sur les mocks (http://fr.wikipedia.org/wiki/Mock_(programmation_orient%C3%A9e_objet)).

Bon code.

dimanche 27 novembre 2011

Rails 3 default_scope et unscoped

Rails 3 a apporté un petit truc sympa le default_scope. Il permet d'appeler un scope par défaut sur un model. Par contre il peut être sympa dans certain cas d'éviter d'utiliser le default_scope. C'est pour cette raison qu'il existe unscoped

Exemple :

class Product < ActiveRecord::Base

  default_scope :order_by_name, order(:name)

end

# Ordonné par name

# SELECT * FROM products ORDER BY name;

Product.all 

# SELECT * FROM products;

Product.unscoped.all

A retenir ! En même temps c'est pas très compliqué !

mercredi 2 novembre 2011

Rails i18n - Mettre un texte de remplacement si la traduction n'existe pas

Après lecture du code source du module i18n de rails j'ai trouvé. Donc pour mettre un texte de remplacement si une traduction n'existe pas (translation missing), il faut utiliser l'option default pour la méthode t (translate).

Exemple avec une traduction présente :

t(:hello)

#=> "hello"

Exemple avec une traduction absente :

t(:test)

#=> "<span class=\"translation_missing\" title=\"translation missing: en.test\">Test</span>"

Donc si vous faites ceci vous n'avez plus d'erreur :

t(:test, :default => "texte par défaut")

#=> "texte par défaut"

Pour tester en console il faut créé une instance ActionView et précéder la fonction t de cette instance, comme suit : 

av = ActionView::Base.new

av.t(:hello)

Sinon sur le net, un développeur propose une super idée : personnaliser l'exception levé  et faire appel à l'API de Google traduction

Voici le code pour cette 2ème solution (enfin vue que l'API va devenir payante) :


module I18n
  class << self
    def raise_custom_exception(exception, locale, key, options)
      if MissingTranslationData === exception
        # do something with the missing translation
        return translation
      else
        raise exception
      end
    end
  end
end
I18n.exception_handler = :raise_custom_exception
Url de la discussion : http://www.ruby-forum.com/topic/220355

jeudi 20 octobre 2011

Gem prawn pdf pour rails : enfin une vrai documentation

Vous avez dû remarquer que j'ai récemment écrit quelques posts sur prawn la librairie ruby (et rails) pour générer des documents pdf je suis en train (pour une application) de passer de prawn 0.7.1 à prawn 1.0.0.rc1 et oui il y a du chemin et comme chez prawn ils aiment bien tout changer souvent c'est un peu compliqué, il faut revoir tout son code. Mais voilà une vrai doc est dispo : http://prawn.majesticseacreature.com/manual.pdf

Bon si jamais la doc générée ne fonctionne pas (comme la semaine dernière voici une copie) : prawn pdf documentation

On peut tout faire avec cette dernière version (ah bon j'ai l'air enthousiaste ?), styliser les tableaux comme vous l'avez rêvé (background color d'une cellule particulière, mettre du texte dans le tableau, un image, un texte incliné, bordure padding, height, width), faire une mise en page en colonne... enfin tout quoi. Parcourez la doc il y a plein d'exemples et du rendu correspondant.

Je rappelle que prawn est sous licence GPLv2 et GPLv3.

- page 1 de 8