Comment créer un point d'ancrage et de rediriger vers cette ancre dans Ruby on Rails

Je suis en train de créer des points d'ancrage pour tous les commentaires sur mon blog, donc une personne peut prendre l'url de l'ancre et de le coller dans son navigateur, qui va automatiquement charger la page et faites défiler vers le point dans la page où leur commentaire commence.

Peut-être que je vais sur ce le mauvais sens, mais j'ai essayé ce qui était en vain.

Commentaire de vue de l'Échec 1 - lorsqu'il est collé dans un navigateur, ce lien n'est pas faites défiler vers le bas jusqu'à la position souhaitée

<%= link_to '#', :controller => 'posts', :action => 'show', :id => comment.post, :anchor => 'comment_' << comment.id.to_s %>

Commentaires contrôleur de l'Échec 2 - correction de l'url dans le navigateur, mais pas de défilement qui se passe, il reste simplement en haut de la page

redirect_to :controller => 'posts', :action => 'show', :id => @post, :anchor => 'comment_' + @comment.id.to_s

Si quelqu'un pouvait m'aider je lui en serais très reconnaissant 🙂

Mise à JOUR: Les solutions ci-dessous presque le travail, mais je sors avec l'URL suivante qui n'est pas affichée si je clique sur elle.

#
c'est à dire http://localhost:3000/posts/please-work

  • Dans le but de faire de l'écran, faites défiler l'url est de spécifier où vous souhaitez faire défiler jusqu'à. Pour ce faire, vous devez avoir un #comment_123 à la fin de votre url. Où le texte après le " # "doit correspondre à la valeur d'un attribut "name" dans une balise d'ancrage. L'url dans votre mise à jour ne sera pas de défilement pour le manque d'un #.
  • Ouais j'ai essayé - ça n'a pas de travail! Il s'avère que :ancre crée cette url <une ancre="comment_126" href="/posts/s'il vous plaît"travail>#</a>, Mais en utilisant :les changements de nom à ce, qui est, comme vous dites, c'est ce que je suis après. Aucune idée de pourquoi c'est le cas? <a name="comment_126" href="/posts/s'il vous plaît"travail>#</a>
  • Oh, ok, je vois. Désolé pour la confusion. J'ai mis à jour ma réponse, mais il semble que vous avez manuellement concaténer le point d'ancrage sur la fin de l'url. Sinon, le link_to tag pense que l'ancre est un attribut html. Espérons que cela fonctionne 🙂
  • Ouais c'est ce que j'ai fait. Merci de m'aider à y arriver 🙂
  • Vous pouvez ajouter l'ancre comme ceci: post_path(@poste, :ancre => "some_text"). Il suffit de passer d'ancrage en tant que paramètre à post_path, de ne pas link_to.
InformationsquelleAutor Damian | 2009-04-16