¿Cómo puedes tener un campo oculto con forma simple?
El siguiente código:
= simple_form_for @movie do |f|
= f.hidden :title, "some value"
= f.button :submit
da como resultado este error:
undefined method `hidden' for #SimpleForm::FormBuilder:0x000001042b7cd0
ruby-on-rails
ruby-on-rails-3
form-for
hidden-field
simple-form
Linus Oleander
fuente
fuente
= f.input :title, :as => :hidden, :input_html => { :value => "some value" }
simple_form
forma de hacer entradas ocultas, sin embargo, si solo se necesita una entrada oculta, simplemente use elhidden_field
generador de formularios de Rails, ya que Simple Form hereda todos los métodos del generador de formularios.Más corto aún!
Más corto, SECO y quizás más obvio.
Por supuesto, con ruby 1.9 y el nuevo formato hash podemos ir 3 caracteres más cortos con ...
fuente
También es una opción. Sin embargo, tenga en cuenta que omite cualquier contenedor definido para su generador de formularios.
fuente
La forma correcta (si no está intentando restablecer el valor de la entrada hidden_field) es:
¿Dónde
:method
está el método que cuando se llama al objeto da como resultado el valor que desea?Entonces, siguiendo el ejemplo anterior:
El código utilizado en el ejemplo restablecerá el valor (: título) de @movie que pasa el formulario. Si necesita acceder al valor (: título) de una película, en lugar de restablecerlo, haga lo siguiente:
Nuevamente, solo use mi respuesta si no desea restablecer el valor enviado por el usuario.
Espero que esto tenga sentido.
fuente
simple_form_for
, elhidden
método que se usa aquíundefined method
generará un error oculto 'para # <SimpleForm :: FormBuilder: 0x00007ffa6cde0be8> `