Как отображать только значение на странице редактирования в Active Admin
У меня есть форма редактирования в Active Admin. Мне нужно поле для чтения только для чтения.
Моя текущая страница редактирования похожа на
![enter image description here]()
Мне нужна страница, похожая на эту
![enter image description here]()
Как это можно сделать. Мой код для страницы редактирования формы похож на
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
Пожалуйста, помогите.
Ответы
Ответ 1
Как сказал Алекс, отключен. Затем вы можете использовать css для получения визуального изображения, которое вы хотели, если вы можете жить с семантикой этого.
Синтаксис для меня несколько отличался.
в форме администратора:
f.input :finish_position, input_html: { disabled: true }
в вашем CSS active_admin.css
input[disabled="disabled"],
input[disabled] {
background-color: #F4F4F4;
border: 0px solid #F4F4F4 !important;
}
Ответ 2
Для более чистого определения формы в вашем блоке ActiveAdmin.register {} вы также можете определить тип ввода "только для чтения", который будет использоваться в активном админе с помощью formtastic:
Синтаксис блока формы для activeadmin версии 1.0.0.pre на 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
Ответ 3
Попробуйте добавить , :disabled => true
для поля ввода адреса.
Ответ 4
Я столкнулся с той же проблемой и попытался использовать :disabled
, но это не решило мою проблему, поскольку я хотел, чтобы значение field
было включено в объект params
при отправке его на сервер. Когда вы отмечаете form input
как :input_html => {:disabled => true}
, оно не включает это значение поля в params
.
Поэтому вместо этого я использовал :input_html => {:readonly => true}
, который решил обе мои проблемы:
- Не позволяет пользователю
edit
- Включает значение в
params
Надеюсь, это поможет.
Ответ 5
Фокус в том, чтобы использовать "объект". Вот как вы должны его кодировать:
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