2017-04-01 3 views
0

ich diese wählen in meiner Form haben:Set Option ausgewählt mit Schienen Symbol

<%= select_tag :x, options_from_collection_for_select(@dmj, :id, :name, :selected), {class: "form-control"} %> 

aber wenn ich laden Sie die Seite, die Option, deren Wert in db gesetzt ist nicht ausgewählt.

Das Symbol :selected stammt aus einer SQL-Abfrage in der Steuerung und wenn ich versuche, die :name mit :selected im options_from_collection_for_select zu ersetzen, kann ich sehen, dass der Wert korrekt ist.

Wenn ich die Ganzzahl manuell in setze, wird auch die entsprechende Option ausgewählt.

Warum gelingt es mir nicht, die Option mit dem Symbol auszuwählen?

EDIT:

Meine Abfrage macht eine Verknüpfung der aus einer Tabelle Join ausgewählt abzurufen. Hier ist die Abfrage: @dmj = DiscoveryModeInjury.find_by_sql ("SELECT D.name, D.id, L.discovery_mode_injury_id AS
ausgewählt FROM
discovery_mode_injuries D
LEFT OUTER JOIN
link_dismodeinj_hospitalizations L
ON
D. id = L.discovery_mode_injury_id
WHERE
flag = 'Scheibe'
ORDER BY
D.name ")

Wenn ich den Vorschlag von Akash Srivastava richtig verstanden habe, sollte die Abfrage das ID-Feld DiscoveryModeInjury zurückgeben? Wie..? Vielen Dank.

Antwort

0

Stellen Sie sicher, dass Ihre Abfrage für :selected ein Feld :id zurückgibt. Grundsätzlich sollte die selected Option in options_from_collection_for_select() aus dem gleichen Feld wie die value Feld derselben sein, die :id in Ihrem Fall ist. Viele von uns machen diesen Fehler, das Ergebnis selected als ein Objekt der collection zu behalten.

Verwandte Themen