Ruby on Rails
Posts 1-1 of 1
-
Gerald Müller Premium MemberThe company name is only visible to registered members.Problem mit Anführungszeichen in einem per link_to_funktion erzeugten <select> Feld
Hallo,
ich habe folgendes Problem. Ich hoffe ich hab es verständlich formuliert!?
In meinem Form werden aus einem :partial mehrere <select> Felder generiert.
Mit link_to_funktion sollen noch weitere <select> Felder hinzugefügt werden können:
link_to_function do |page|
page.insert_html :bottom, :my_ul, :partial => 'my_partial', :object => MyModel.new
end
Im Partial wird das <select> Feld samt den <options> generiert.
<%= form.select :my_model_id, @my_models.collect {|m| [ "#{m.artnr} - #{m.name}", m.id ] } %>
Das funktioniert soweit auch. Wenn allerdings in einem MyModel.name irgendwo Anführungszeichen vorkommen funktioniert das Element.insert Javascript nicht mehr. Das generierte Javascript hat zwar alle Anführungszeichen html_escaped, aber es scheint trotzdem mit den anderen Anführungszeichen des <options> Tags durcheinander zu kommen.
Mein erster Lösungsansatz war, den Namen schon im Partial zu escapen:
<%= form.select :my_model_id, @my_models.collect {|m| [ "#{m.artnr} - #{h(m.name)}", m.id ] } %>
So funktioniert das einfügen eines neuen <select> per link_to_funktion, aber bei den existierenden <select> Feldern wird der Name jetzt doppelt escaped, da anscheinend @my_models.collect standartmäßig ein html_escape macht. Was zur folge hat, dass aus z.B. & => & auf der Seite angezeigt wird. In den per Javascript erzeugten <select> werden die so doppelt escapten Anführungszeichen wieder einmal zurück gewandelt, wodurch aus &quote; wieder "e; wird und das Anführungszeichen richtig angezeigt wird.
Hat jemand eine Lösung wie man bei beiden die richtige Ausgabe hin bekommt?
Schon mal Danke im Voraus!
- 05 Dec 2009, 1:11 pm
