IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby on Rails Discussion :

theme_support et Rails 3


Sujet :

Ruby on Rails

  1. #1
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut theme_support et Rails 3
    Bonjour,

    J'utilise un plugins qui permet de surcharger les vues du répertoire app/views, il faut précisé dans application controller le thème à utiliser.
    Le plugin est theme_support.

    Je suis en train de migrer une application rails 2.3.8 en rails 3. Et ce plugin n'est pas compatible avec rails 3. D'ailleur la partie la plus pénible dans la migration se sont les gems et plugins non à jour et non maintenu.

    Utilisez-vous un plugin relativement similaire ? Ou avez-vous une solution ou une idée ?

    http://github.com/jystewart/theme_support

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    railsapp
     |--themes
         |--montheme
            |--images
            |--javascripts
            |--stylecheets
            |--views

  2. #2
    LXS
    LXS est déconnecté
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 106
    Points : 137
    Points
    137
    Par défaut
    Sur la dernière application que nous avons réalisé nous avons joué avec le view_path au niveau de l'ApplicationController.

    Quand l'application est déployée, nous chargeons memcache avec les associations domaine <=> view_path (ce qui permet de ne pas taper dans la base), puis à chaque requête, nous avons un before_filter qui fait un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preprend_view_path "le/nouveau/path"
    .

  3. #3
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut
    Merci pour ta réponse !

    Je pensais être le seul à utiliser cela !

    Donc le code ci-dessous permettrait tout seul de charger les vues dans "le/nouveau/path" puis si elles n'existent pas les charger à partir de "app/views" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Class MonController < ApplicationController
      preprend_view_path "le/nouveau/path"
     
      def monaction
     
      end
    end

  4. #4
    LXS
    LXS est déconnecté
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 106
    Points : 137
    Points
    137
    Par défaut
    plûtot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class MonController < ApplicationController
      before_filter :set_paths
      def monaction
      end
     
      private
      def set_paths
        preprend_view_path "le/nouveau/path"
      end
    end
    Du coup nous l'avons placé directement dans l'ApplicationController vu nos besoins. Mais après tout dépendra des tiens

    En ce qui concerne les assets normalement placés dans Rails.root/pubic, nous n'avons pas trouvé d'autres solutions que de faire des sous-dossiers pour le moment. Dans l'absolu, il faudra que l'on joue sur les asset_path ou middleware Rack::Static pour faire quelque chose de clean...

  5. #5
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut
    Merci c'est juste impeccable ! Pour les assets, c'est la prochaine étape !

    Par contre c'est "prepend_view_path" sans le 2ème "R"

  6. #6
    LXS
    LXS est déconnecté
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 106
    Points : 137
    Points
    137
    Par défaut
    Oui, je pense qu'il est grand temps que je change de lunettes

  7. #7
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut
    Bonjour,

    J'ai réécrit le plugin themesupport pour rails3.
    Le gem ne fonctionne pas avec actionmailer de rails3.

    Il faut ajouter

    Dans le gemfile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gem 'theme_support', '3.0.7'
    Dans le fichier route.rb :

    Ce qui évite de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rake themes:cache:update
    Dans le controller

    soit

    soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    theme :loadtheme
     
    def loadtheme
      'montheme'
    end
    Sinon le fonctionnement reste le même.
    http://github.com/zedalaye/theme_support/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rails, ça vaut quoi ?
    Par Jean_Benoit dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 12/12/2006, 15h19
  2. votre avis sur Rails
    Par masu dans le forum Ruby on Rails
    Réponses: 14
    Dernier message: 13/08/2006, 06h06
  3. Réponses: 2
    Dernier message: 06/06/2006, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo