Раньше все мои похвалы моделей хранились в виде логических столбцов, и я пытаюсь сделать их немного чище и более управляемыми.Это будет редактироваться только администраторами. Это только пользовательский интерфейс для отображения.
Я хотел бы, чтобы это был список флажков, но у меня возникают проблемы при обновлении их из ActiveAdmin.
models / user.rb
class User < ActiveRecord::Base
ACCOLADES = :great_guy, :smashing_haircut, :trimmed_nails,
:fresh_breath, :nice_shoes
serialize :accolades, Hash
store_accessor :accolades, User::ACCOLADES
admin / user.rb
ActiveAdmin.register User do
menu parent: "User Information"
...
form do |f|
f.inputs "Basics" do
f.input :name
f.input :website
f.input :email
end
...
f.inputs "Accolades" do
User::ACCOLADES.each do |accolade|
f.input accolade, as: :boolean, checked_value: 'true', unchecked_value: 'false'
end
end
end
Это отображает список флажков, как и ожидалось, но создает неправильный «слой» имени идентификаторы
<li class="boolean input optional" id="user_great_guy_input">
<input type="hidden" name="user[great_guy]" value="false">
<label for="user_great_guy" class=""><input type="checkbox" name="user[great_guy]" id="user_great_guy" value="true">Great Guy</label>
</li>
Как получить список флажков, которые обновляют сериализованный хэш?Спасибо!
РЕДАКТИРОВАТЬ:
Оказывается, это была пара вещей.Между нами, другой разработчик и я неправильно прочитали документы Магазина и работали над другим предположением о его внутренней работе.
При этом я пытался создать хеш для отправки и сохранения в .accolades
, но это было неверно.Добавление: похвалы и АККОЛАДЫ к сильным параметрам в admin / user.rb исправили эту проблему, и теперь она обновляется, как и ожидалось, с
f.inputs :accolades do
f.input :great_guy, as: :boolean, checked_value: 'true', unchecked_value: 'false'
...
end