Как отправить форму из собственного экшена в ActiveAdmin?
Создал два экшена - first (get) и second (post).
В first-шаблоне разместил форму "active_admin_form_for". Форма отображается. Имена полей обернуты в first (например: first[title]).
После нажатия на кнопку "submit" мы попадаем в экшен "second", в теле которого есть только одна строка: render json: params
В полученном JSON мы не имеем ничего. То есть там есть дефолтные значения формы, типа: "authenticity_token" или "controller" с "action", но не более. Полей нет.
Почему их нет?
Поля нестандартные. Их нет в таблице в БД. Мне просто нужно получить значение из них в экшене "second" для дальнейших манипуляций (не для записи в БД).
Проверить, что указаны атрибуты в permit_params и, вообще, в логах должно быть видно, что в параметрах присутствуют необходимые атрибуты при действии POST.
Проверил. В логах данных из полей тоже нет. А как правильно заполнить permit_params в данном случае не знаю. Поля как бы не "БДшные", а рядом с экшенами этими есть и "БДшные" поля. Для них прописал это:
permit_params do
allowed = [
:title,
:text
# ...
]
permitted = *allowed
permitted << :other if params[:action] == 'create' && current_user.is_admin?
permitted
end
Роман Мирр: проблема была в "disabled". Кто же бл*дь знал что html атрибут disabled так буквально воспринимается ActiveAdmin... В RoR проекте (его классической части) такой проблемы нет. Там атрибут "disabled" запрещает редактировать поле - не более.