2017-02-28 5 views
0

Ich habe ein Modell, wo ich alle Datensätze für die Assoziation, getrennt durch 'und' und als Link angezeigt werden soll ... Bisher habe ich eine Karte oder eine link_to Option im Hinterkopf .... aber ich möchte kombinieren beides:Rails Kartenmethode mit link_to Helfer kombiniert?

Mein gewünschtes Ergebnis ist folgende:

name und name2 und name3 usw. jeweils als Link angezeigt wird.

so

name... und name...

Der Verein funktioniert gut und gibt mir alle Einträge, wenn ich

tun
= model.associations.map(&:name).join(' and ') 

Aber 'Karte' als Link nicht funktioniert. Ist es möglich, map und link_to irgendwie zu kombinieren?

Für link_to würde ich ..:

-model.associations.each do |a| 
    =link_to a.name, a 

Das ist offensichtlich nicht die Assoziations Einträge mit einem ‚und‘ trennen würde. Jeder Tipp wird sehr geschätzt. Vielen Dank.

+0

Ja, ich möchte nur alle Datensätze als Link angezeigt werden wie mit each.do | a | = link_to a.name, a => aber Ich möchte, dass alle Links durch ein 'und' getrennt werden, der letzte Link sollte kein 'und' danach haben –

Antwort

1

Probieren Sie etwas wie

= model.associations.map { |a| link_to(a.name, a) }.join(" and ").html_safe 

Aber ich würde teilen die Logik zwischen Aktion und Sicht. In der Aktion

@items = model.associations 

Nach Ansicht

= @items.map { |a| link_to(a.name, a) }.join(" and ").html_safe 
+0

Schön! Funktioniert. Ich hoffe es ist kein schlechter Übungsfall. Aber deine Lösung funktioniert sehr gut! Danke vielmals!! –

+0

Mein Vergnügen Sir;) – Ursus

+0

Uh, sei italiano! – Ursus

0

Der einfachste Weg für das, was Sie tun, ist nur hinzuzufügen und nach der =link_to a.name, a. Da Sie nur die Daten in einer Vorlage ausgegeben wird, und nicht in einer Variablen für die Wiederverwendung Speichern später, gibt es keine Notwendigkeit für eine Karte

+0

Thx. Wie kann ich verbieten, dass nach dem letzten Eintrag ein "und" angezeigt wird? Ich meine, wenn die Each-Schleife endet, will ich kein "und" am Ende ... Verstehst du? Danke! –