2009-10-08 11 views
0

L'un des composants dont j'ai besoin pour une application sur laquelle je travaille est très similaire à un CMS. Alors que je permets à un utilisateur d'écrire son propre HTML.Composants CMS dans les rails

Le concept consiste en des étiquettes et des blocs personnalisés.

Par exemple. Ce que je dois faire est de combiner ce qui suit à l'exécution.

<div id="products"> 
<module type="products" display="5" /> 
</div> 

<!-- then a block--> 

<div class="product" id="product-%[product_id]"> 
<img src="%[product_image]" /><br /> 
<span class="title"><a href="%[product_url]">%[product_title]</a</span> 
</div> 

En PHP j'utiliserais la mise en mémoire tampon de sortie pour ceci. Je n'ai pas besoin de tout savoir sur la façon de faire chaque morceau de ce juste, comment puis-je sortir une page en utilisant ce concept (provenant d'une base de données) au lieu d'utiliser la vue des rails intégrés.

+0

Bloc de quoi? Ton contenu? Contenu de l'utilisateur? Je ne suis pas sûr qu'il y ait une question à laquelle il faut répondre, mais peut-être pourriez-vous clarifier. – tadman

+0

Fondamentalement ce que j'ai montré est la spécification pour le moteur de modèle. Vous avez un module "TAG" du type "products" l'argument qu'il passe est display = "5". Ensuite, mon code va charger le "bloc" "produits" d'une table. Lors de son itération, il remplace les variables dans le bloc, les données combinant les 5 blocs HTML ALORS remplacent la balise de module par le code HTML généré. Ensuite, j'ai besoin de sortir cela à l'écran. Je suis nouveau sur les rails, donc je veux le faire de la bonne façon. --- Tout ce que je veux savoir est de savoir comment afficher correctement le code HTML généré – g00se0ne

Répondre

0

Si je comprends bien votre question, vous voulez savoir comment rendre une chaîne. Ceci est tout à fait hors de Rails docs:

# Renders the clear text "hello world" with status code 200 
    render :text => "hello world!" 

    # Renders the clear text "Explosion!" with status code 500 
    render :text => "Explosion!", :status => 500 

    # Renders the clear text "Hi there!" within the current active layout (if one exists) 
    render :text => "Hi there!", :layout => true 

    # Renders the clear text "Hi there!" within the layout 
    # placed in "app/views/layouts/special.r(html|xml)" 
    render :text => "Hi there!", :layout => "special"