2010-09-23 11 views
6

Ich bin überrascht, Rails Schöpfer hat nicht darüber nachgedacht, wenn jemand helfen kann, wäre großartig.SEO/Rails - Wie die title-Tag zu jedem "link_to"

Wie können wir tun, um dies zu ändern:

<%= link_to "My Title", :controller => "products" %> 

auf diese automatisch:

<%= link_to "My Title", :controller => "products", :title => "My Title" #basically a copy of the text %> 

Ich denke, es SEO viel helfen könnte.

Vielen Dank!

Alex

+4

Das ist nicht SEO überhaupt helfen würde - es wäre völlig überflüssig. Es würde überall hässliche Tooltips hinzufügen und viele Informationen für Bildschirmleser wiederholen. Verwenden Sie ein Titelattribut, wenn Sie zusätzliche Informationen bereitstellen müssen, die Sie entweder nicht in den Linktext aufnehmen können oder nicht wichtig genug sind, um dies zu tun. – Quentin

+0

Ich bin überrascht, dass Sie das tun wollen, ist nicht der Link Text genug ...? –

+0

Davids Antwort ergibt Sinn, aber ich hatte die Erfahrung vorher. Es ist besser, den Text zu wiederholen, als das Title-Tag leer zu lassen. Und ich habe keine Zeit, "zusätzliche Informationen" für alle meine Links anzugeben. Danke euch beiden für das Interesse. – Alextoul

Antwort

-4

Versuchen Sie etwas wie das

def link_to_with_autotitle(title, args = {}) 
    link_to_without_autotitle(title, args.merge(:title => title)) 
end 
alias_method_chain :link_to, :autotitle 

Haben Sie den Code nicht getestet und kann mich nicht erinnern die genaue link_to spec aber ich denke, Sie bekommen die Idee

+0

Danke, gute Idee – Alextoul

+1

Würde nicht args.merge (: title => title) tatsächlich den Titel in Args überschreiben, falls einer angegeben wurde? {: title => title} .merge (args) sollte stimmen. –

7

Ihre Frage gültig ist und Ich weiß nicht, warum du abgelehnt wurdest, aber der Schöpfer von Rails DID denkt tatsächlich darüber nach. Eigentlich kann man es auf eine sehr einfache Art und Weise tun, anstatt zu verkomplizieren einer benutzerdefinierten Methode:

<%= link_to "Link", { :action => "show" }, { :title => "Title" } %> 

Sie können in der Tat fügen Sie alle Parameter, die Sie mögen, nicht nur den Titel.

Hoffe, das hilft!