Ich versuche, eindeutige Anker für jeden Kommentar in meinem Blog zu erstellen, so dass eine Person die URL eines Ankers nehmen und in ihrem Browser einfügen kann lädt die Seite automatisch und scrollt bis zu dem Punkt auf der Seite, wo der Kommentar beginnt.So erstellen Sie einen Anker und Redirect zu diesem bestimmten Anker in Ruby on Rails
Vielleicht gehe ich das falsch herum, aber ich habe das versucht, was vergeblich war.
Kommentaransicht - Fehler 1 -, wenn sie in einem Browser eingefügt Link blättern nicht in die gewünschte Position nach unten
<%= link_to '#', :controller => 'posts', :action => 'show', :id => comment.post, :anchor => 'comment_' << comment.id.to_s %>
Kommentare Controller - Fehler 2 - korrekte URL in Browser aber kein Scrollen geschieht es gerade bleibt die oben auf der Seite
redirect_to :controller => 'posts', :action => 'show', :id => @post, :anchor => 'comment_' + @comment.id.to_s
Wenn jemand helfen könnte ich sehr dankbar würde :)
UPDATE: die Lösungen unter fast Arbeit, aber ich komme aus mit der folgenden URL, zu der nicht gescrollt wird, wenn ich darauf klicke.
# heißt http://localhost:3000/posts/please-work
Um den Bildschirm blättern die URL zu tun hat, um anzugeben, wo Sie es möchten, scrollen. Um dies zu tun, musst du einen # comment_123 am Ende deiner URL haben. Der Text nach dem '#' muss mit dem Wert eines Attributs 'name' in einem Anker-Tag übereinstimmen. Die URL in Ihrem Update scrollt nicht, wenn kein # vorhanden ist. – vrish88
Ja, ich habe es versucht - es hat nicht funktioniert! Es stellte sich heraus das: Anker schafft diese URL # Aber mit: Name ändert sich dies, die, wie Sie sagen, ist das, was ich bin nach. Irgendeine Idee warum das der Fall ist? # – Damian
Oh, ok ich sehe. Entschuldigung für die Verwirrung. Ich habe meine Antwort aktualisiert, aber es sieht so aus, als ob Sie den Anker manuell am Ende der URL verketten müssen. Andernfalls denkt das link_to-Tag, dass: anchor ein html-Attribut ist. Hoffe, das funktioniert :) – vrish88