форма отношений has_many с ActiveAdmin?

Я искал это в течение часа и до сих пор не нашел решения.

У меня есть Account, который has_many :users, и User, который belongst_to :account

На моем admin/account я хочу создать форму, которая позволит добавить этих пользователей в учетную запись, поэтому я сделал:

form(html: { multipart: true }) do |f|
    f.inputs "Account details" do
      f.input :email
      f.input :full_name
      f.input :password
      f.input :birth_date, :as => :datepicker
      f.input :user_ids
      f.input :bio
      f.input :deleted
    end
    f.actions
  end

Но я получаю ошибку unpermmited_parameter: user_ids, хотя я добавил ее в permit_params:

permit_params :email, :password, :deleted, :full_name, :birth_date, :bio, :created_at, :updated_at, user_ids:[]

Я видел, что если вы попытаетесь заполнить поле с неправильным форматом, вы получите эту ошибку, поэтому я попытался заполнить его идентификаторами следующим образом: «1,2,3»; "1 2 3", [1,2,3]... но все то же самое.

Есть идеи?


person Nick L Scott    schedule 26.10.2015    source источник


Ответы (1)


Попробуй это:

form(html: { multipart: true }) do |f|
  f.inputs "Account details" do
  ...
  f.inputs 'Users' do
    f.input :user_ids, as: :array
  end
  ...
end
person Alexander Shlenchack    schedule 26.10.2015
comment
Я получаю Unable to find input class ArrayInput, и, согласно документам Formattic, :array не является допустимым входным значением. - person Nick L Scott; 26.10.2015
comment
Извините, я использовал там пользовательский ввод. Вы можете сделать так: f.input :user_ids, as: :select, collection: User.pluck(:name, :id), include_blank: true,multiple: true - person Alexander Shlenchack; 26.10.2015
comment
Я хотел избежать использования выбора, но я думаю, что у меня нет выбора. Спасибо! Еще одна вещь, вы знаете, как я могу изменить высоту выбора? Он показывает мне только 4 за раз. - person Nick L Scott; 26.10.2015
comment
Для этого задания следует использовать настраиваемый элемент управления. Мне нравится select2: select2.github.io - person Alexander Shlenchack; 26.10.2015
comment
Если вы не хотите использовать выбор, вы можете использовать текстовый ввод и проанализировать его внутри контроллера. Также вы можете использовать несколько вводов текста. При таком подходе Rails будет ароматически анализировать входные данные для целевого массива. Для этого есть много решений. Но лучше использовать поиск multiselect + ajax. - person Alexander Shlenchack; 26.10.2015