Ich möchte so etwas in Schienen machen
Folgendes habe ich bisher in Schienen:
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
Aber dann bekomme ich diesen Fehler:
undefined method `merge' for "test":String
Wie kann ich Werte in meinem hidden_field in Rails übergeben?
Antworten:
Du solltest tun:
hidden_field
erwartet einen Hash als zweites Argumentquelle
<%= hidden_field_tag :service, "test" %>
wenn wir nicht verwendenform_for |f|
...Sie verwenden ein verstecktes_Feld anstelle eines versteckten_Feld_Tags. Da Sie die Nicht-Tag-Version verwenden, wird davon ausgegangen, dass Ihr Controller den Wert für dieses Attribut bereits für das Objekt festgelegt hat, das das Formular unterstützt. Beispielsweise:
Regler:
Aussicht:
quelle
Es funktioniert gut in Ruby 1.9 & Rails 4
quelle
Eine Version mit der neuen Syntax für Hashes in Ruby 1.9:
quelle
Dies funktioniert auch in Rails 3.2.12:
<%= f.hidden_field :service, :value => "test" %>
quelle
Ich verwende übrigens keine versteckten Felder, um Daten vom Server an den Browser zu senden. Datenattribute sind fantastisch. Du kannst tun
Und dann mit jquery den Attributwert abrufen
quelle