2009-11-10 4 views
2

Je veux rendre un partiel dans une vue. de sorte que lorsque le bouton MORE est cliqué, tout reste le même, seuls les caractères supplémentaires sont affichés. dans mon cas, tout l'article.peut link_to conduire à rendre sth?

<%= @article1.content[0..300] + "..." %> 
<%= link_to "more", ....... %> 

Je ne sais pas quel serait le bon methot. en quelque sorte je dois expliquer aux rails que quand le bouton plus est cliqué il me montre l'article entier. peut-être que je ne devrais pas utiliser la méthode link_to ..

vous remercie d'avance pour vos replys

Répondre

2

Ce que vous cherchez est link_to_remote ou link_to_function. Link_to_remote va chercher le reste de l'article à partir de votre contrôleur et le remplacer/ajouter à un élément DOM avec un via RJS partiel. Cela vous permet de réduire au minimum les données inutiles envoyées, et facilite le traitement des utilisateurs qui ont javascript désactivé. Avec link_to_function, l'article entier sera servi lors du chargement de la page, mais tout ce qui dépasse les 300 premiers caractères sera caché par CSS. Ceci est plus facile à configurer mais envoie beaucoup plus de données, il repose également sur le fait que l'utilisateur ait activé javascript.

Sans regarder à la source, l'utilisateur moyen ne pouvait probablement pas distinguer les deux méthodes.

Le choix de votre choix dépend de vous. Désolé, je n'ai pas le temps de fournir des exemples de code, mais Internet est plein d'entre eux.

+0

link_to_remote se fonde également sur javascript;) donc la principale différence est la vitesse - avec link_to_function il sera moins avec link_to_remote – tig

+0

Cela est vrai, mais suppling les options d'URL donnés à link_to_remote à nouveau la valeur href dans l'option html permet lien vers le travail même si javascript est désactivé .. Comme dans link_to_remote "More", article_path (@article),: href => article_path (@article) Ensuite, pour compléter le failsafe javascript désactivé, votre contrôleur doit discriminer le type de requête (js vs html) soit charger la partie ou la page entière. link_to_function est définitivement plus rapide une fois la page chargée mais nécessite encore plus de travail pour éviter de laisser un lien mort lorsque Javascript est désactivé. – EmFi

2

essayer link_to_function, utilisez truncate pour une partie et insérer balise cachée avec texte intégral, mettez-les en utilisant javascript link_to_function

Questions connexes