2016-08-13 2 views
0

Ich versuche ein Select-Tag zu schreiben, das einen Helfer verwendet, den ich geschrieben habe.Rails 4 - können Ruby Tags im Select-Tag verwendet werden?

Wenn ich das Tag so schreibe, funktioniert alles.

Ich möchte einen Helfer verwenden, um den Namen der Rolle anders als den Namen in der Datenbank zu präsentieren. Ich habe einen Helfer dafür gemacht. Jetzt versuche ich diese Hilfsmethode anstelle des: name -Attributs zu verwenden.

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", "<%= text_for_role(name)%>"), :multiple => true, :class => 'chosen-select form-control' %> 

Der obige Versuch funktioniert nicht. Ich kann kein Beispiel dafür finden, wie man einen Helper in einem Select-Tag verwendet. Ist es möglich?

Antwort

1

Wenn Sie Rubin in einem String interpretieren möchten, müssen Sie # {} wie

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", "<%= #{text_for_role(name)}%>"), :multiple => true, :class => 'chosen-select form-control' %> 

verwenden könnten Sie auch setzen Sie Ihre Rubin direkt Code statt Interpolations-:

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", text_for_role("name")), :multiple => true, :class => 'chosen-select form-control' %> 

der obigen wird nur den Fehler beheben, den Sie kennengelernt haben, aber ich denke, dass es das Problem am Ende nicht anspricht. Wenn Sie einen anderen Namen als den in der Datenbank anzeigen möchten, müssen Sie im Rollenmodell text_for_role definieren. und dann rufen Sie:

<%= select_tag "roles", options_from_collection_for_select(@roles, :id, :text_for_role), :multiple => true, :class => 'chosen-select form-control' %> 

Dies wird die Methode Text für Rolle für jede AR-Objekt aufrufen, den Namen Attribut in HTML-Tag zu setzen.

+0

danke- Ich habe beide Optionen ausprobiert. aber keiner von ihnen funktioniert. – Mel

+0

Fehler für die erste: Syntaxfehler, unerwartete $ undefined ...: mehrere => true,: class => \ 'gewählt-wählen Sie Formular-Steuerelement \' ... ... – Mel

+0

Fehler für 2.: undefined lokalen Variable oder Methode 'Name 'für # <# : 0x007ff6a9cbc3f0> – Mel

Verwandte Themen