How to display only the value in edit page in Active Admin
Solution 1
As Alex said, set to disabled. You could then use css to get the visual you wanted, if you can live with the semantics of that.
The syntax was slightly different for me to get this to work.
in your admin form:
f.input :finish_position, input_html: { disabled: true }
in your CSS active_admin.css
input[disabled="disabled"],
input[disabled] {
background-color: #F4F4F4;
border: 0px solid #F4F4F4 !important;
}
Solution 2
For a cleaner form definition within your ActiveAdmin.register{} block you may as well want to define a "readonly" input type to be used within active admin using formtastic:
Form block syntax is for activeadmin version 1.0.0.pre at 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
Solution 3
I was facing the same issue and tried using :disabled
but it did not solve my problem as I wanted field
value to be included in params
object while sending it to the server. When you mark a form input
as :input_html => {:disabled => true}
, it does not include this field value in params
.
So, instead I used :input_html => {:readonly => true}
which solved both of my problems:
- Does not allow user to
edit
- Includes the value in
params
I hope this will help.
Solution 4
How about this?
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
Solution 5
Try to add , :disabled => true
for address input field.
Comments
-
Amal Kumar S about 4 years
I have a edit form in Active Admin. I need some field as read only.
My current edit page is like
I need the page look like this
How can this be done. My code for the edit form page is like
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
Please help.
-
Amal Kumar S over 11 yearswhen I add :disabled => ture I can see the textbox there, and it wont be editable. Actually I dont wan't any textbox there.
-
harshitpthk almost 8 yearswill this send the value to the controller when the form is submitted?
-
Whatcould over 7 yearsNo it won't — not sure why it needs to, since theoretically it's showing the already-saved value of the field.
-
Albert.Qing almost 7 years
:input_html => {:disabled => true}
, it does not include this field value in params -
microspino over 6 yearsTHX a lot @Will I did a small change to the css to emphasize the idea of a disabled "field": I've substituted
border: 0px solid #F4F4F4 !important;
withcursor: not-allowed;