ruby-on-rails - form - add activeadmin gem
ActiveAdmin: seleccione valores predeterminados desplegables a valor actual en desarrollo, pero el valor predeterminado es en blanco en la producción (2)
Tengo el siguiente formulario de ActiveAdmin:
form do |f|
f.inputs "Timesheet Details" do
f.input :jobs_assigned_worker, :label => "Worker", as: :select, collection: Worker.all
f.input :worked_time_hours, :label => "Worked Time (Hours)"
f.input :worked_time_mins, :label => "Worked Time (Minutes)"
f.input :driving_time_hours, :label => "Driving Time (Hours)"
f.input :driving_time_mins, :label => "Driving Time (Minutes)"
f.input :spent_dollars, :label => "Extra Money Spent"
end
f.actions
end
Cuando utilizo este formulario en la vista de edición, el menú desplegable de selección se establece de manera predeterminada en el valor presente. Sin embargo, en la producción, el menú desplegable es, por alguna razón, el valor predeterminado en el valor en blanco en la parte superior (¿por qué hay ese valor en blanco allí de todos modos?).
EDITAR
El problema parece ser que ActiveAdmin no entiende la asociación y no puede seleccionar el objeto asociado por defecto. Necesito encontrar la forma de codificar la f.input
para la asociación. El formulario es para un parte de horas. Un Timesheet tiene muchos Jobs Asignado Trabajadores y cada Jobs AdsTrabajador tiene un Trabajador.
Intenta establecer la opción ''include_blank''.
form do |f|
f.inputs "Timesheet Details" do
f.input :jobs_assigned_worker, :label => "Worker", as: :select, collection: Worker.all, include_blank: false
f.input :worked_time_hours, :label => "Worked Time (Hours)"
f.input :worked_time_mins, :label => "Worked Time (Minutes)"
f.input :driving_time_hours, :label => "Driving Time (Hours)"
f.input :driving_time_mins, :label => "Driving Time (Minutes)"
f.input :spent_dollars, :label => "Extra Money Spent"
end
f.actions
end
Si desea incluir un valor en blanco:
f.input :jobs_assigned_worker,
label: ''Worker'',
as: :select,
collection: -> { Worker.pluck(:name) },
include_blank: true
Si no desea incluir un valor en blanco:
f.input :jobs_assigned_worker,
label: ''Worker'',
as: :select,
collection: -> { Worker.pluck(:name) },
include_blank: false
Si desea tener un valor en blanco, pero no desea permitirlo como una opción:
f.input :jobs_assigned_worker,
label: ''Worker'',
as: :select,
collection: -> { Worker.pluck(:name) },
include_blank: true,
allow_blank: false