rails form custom active actions ruby-on-rails-3 activeadmin formtastic

ruby on rails 3 - form - Cómo mostrar solo el valor en la página de edición en Active Admin



custom form activeadmin (6)

¿Qué tal esto?

form :html => { :enctype => "multipart/form-data" } do |f| f.inputs "Users" do f.input :device, :label => ''Device'', :as => :select, :collection => DEVICE, :include_blank => false f.li do f.label :current_address f.span f.object.current_address end end end

Tengo un formulario de edición en Active Admin. Necesito un campo como solo lectura.

Mi página de edición actual es como

Necesito que la página se vea así

¿Cómo se puede hacer esto? Mi código para la página de formulario de edición es como

form :html => { :enctype => "multipart/form-data" } do |f| f.inputs "Users" do f.input :device, :label => ''Device'', :as => :select, :collection => DEVICE, :include_blank => false f.input :current_address, :label => ''Current Address'', :as => :string end end

Por favor ayuda.


Como dijo Alex, configurado para discapacitados. Luego, puede usar css para obtener la imagen que desea, si puede vivir con la semántica de eso.

La sintaxis fue ligeramente diferente para mí para que esto funcionara.

en su formulario de administrador:

f.input :finish_position, input_html: { disabled: true }

en tu CSS active_admin.css

input[disabled="disabled"], input[disabled] { background-color: #F4F4F4; border: 0px solid #F4F4F4 !important; }


El truco es usar "objeto". Así es como debes codificarlo:

form :html => { :enctype => "multipart/form-data" } do |f| f.inputs "Users" do f.input :device, :label => ''Device'', :as => :select, :collection => DEVICE, :include_blank => false f.label :current_address, f.object.current_address end end


Estaba enfrentando el mismo problema e intenté usar :disabled pero no resolvió mi problema ya que quería que el valor del field se incluyera en el objeto params al enviarlo al servidor. Cuando marca una form input como :input_html => {:disabled => true} , no incluye este valor de campo en params . Entonces, en lugar de eso, utilicé :input_html => {:readonly => true} que resolvió mis dos problemas:

  1. No permite al usuario edit
  2. Incluye el valor en params

Espero que esto sea de ayuda.


Intente agregar , :disabled => true para el campo de entrada de dirección.


Para una definición de formulario más limpia dentro de su bloque ActiveAdmin.register {} puede que también desee definir un tipo de entrada "solo lectura" para ser usada dentro de la administración activa usando formtastic:

La sintaxis de bloque de formulario es para activeadmin versión 1.0.0.pre en 0becbef0918a.

# app/admin/inputs/readonly_input.rb class ReadonlyInput < Formtastic::Inputs::StringInput def to_html input_wrapping do label_html << template.content_tag(''div'', @object.send(method)) end end end # app/admin/your_model.rb ActiveAdmin.register YourModel do # ... form do |f| # ... input :current_address, as: :readonly # ... end end