tag rails form_with form_tag form_for form for ruby-on-rails

ruby on rails - rails - Form_tag parámetros en hash anidado



form_with vs form_tag (1)

Puede usar fields_for dentro de form_tag para una forma más formal de expresar un espacio de nombres.

fields_for :form_fields do |ff| ff.text_field :my_text_field ff.select :my_select_tag end

Alternativamente, solo tiene que nombrar todas las entradas de su formulario, como tales:

text_field_tag "form_fields[my_text_field]" select_tag "form_fields[my_select_tag]" ...

Luego obtendrás params[:form_fields] = {:my_text_field => "foo", :my_select_tag => "bar"} , que creo que es lo que querías.

Tengo un formulario que no tiene un modelo asociado, así que estoy usando form_tag lugar de form_for . Como se esperaba, cuando el usuario envía el formulario, cada uno de los campos se incluye en el hash de params. Pero el formulario cambiará mucho y preferiría tener un hash dentro del hash params que contendrá todos los valores del campo del formulario para que no tenga que cambiar mi controlador cada vez que lo haga.

¿Hay una manera de poner los valores de campo de formulario en un hash anidado como form_for hace? Me gustaría poder tomar todos los campos del formulario y convertirlos a json haciendo algo como params[:form_fields].to_json