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:
- No permite al usuario
edit
- 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