Quiero hacer algo como esto en rieles
Esto es lo que tengo hasta ahora en rieles:
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
Pero luego me sale este error:
undefined method `merge' for "test":String
¿Cómo puedo pasar valores en mi hidden_field en rails?
Respuestas:
Deberías hacer:
hidden_field
espera un hash como segundo argumentofuente
<%= hidden_field_tag :service, "test" %>
cuando no usamosform_for |f|
...Estás utilizando un hidden_field en lugar de un hidden_field_tag. Debido a que está utilizando la versión que no es _tag, se supone que su controlador ya ha establecido el valor para ese atributo en el objeto que respalda el formulario. Por ejemplo:
controlador:
ver:
fuente
Funciona bien en Ruby 1.9 y rails 4
fuente
Una versión con la nueva sintaxis para hashes en ruby 1.9:
fuente
Esto también funciona en Rails 3.2.12:
<%= f.hidden_field :service, :value => "test" %>
fuente
Por cierto, no uso campos ocultos para enviar datos del servidor al navegador. Los atributos de datos son asombrosos. Tu puedes hacer
Y luego obtenga el valor del atributo con jquery
fuente