tag rails form_with form for ruby-on-rails ruby ruby-on-rails-3 forms hidden-field

ruby on rails - form_with - Rails hidden field undefined method ''merge'' error



hidden field rails (6)

Quiero hacer algo así en rieles

Esto es lo que tengo hasta ahora en los raíles:

<%= 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 rieles?


Deberías hacer:

<%= f.hidden_field :service, :value => "test" %>

hidden_field espera un hash como segundo argumento


Está utilizando un hidden_field en lugar de hidden_field_tag. Como está utilizando la versión no _tag, se supone que su controlador ya ha establecido el valor para ese atributo en el objeto que respalda el formulario. Por ejemplo:

controlador:

def new ... @order.service = "test" ... end</pre>

ver:

<%= form_for @order do |f| %> <%= f.hidden_field :service %> <%= f.submit %> <% end %>


Esto también funciona en Rails 3.2.12:

<%= f.hidden_field :service, :value => "test" %>


Funciona bien en Ruby 1.9 & rails 4

<%= f.hidden_field :service, value: "test" %>


Por cierto, no uso campos ocultos para enviar datos del servidor al navegador. Los atributos de datos son increíbles. Tu puedes hacer

<%= form_for @order, ''data-service'' => ''test'' do |f| %>

Y luego obtener el valor del atributo con jquery

$(''form'').data(''service'')


Una versión con la nueva sintaxis para hashes en ruby ​​1.9:

<%= f.hidden_field :service, value: "test" %>