У меня есть вложенная форма категорий
для магазинов
, и она указана как attr_accessible в модели магазина. Но по-прежнему появляется следующая ошибка:
WARNING: Can't mass-assign protected attributes: category_ids
Я перепробовал все варианты attr_accessible в модели магазина:
attr_accessible :categories
attr_accessible :category
attr_accessible :category_id
attr_accessible :category_ids
Ни один из них не работает! Обе эти модели - has_and_belongs_to_many (и имеют объединяющую таблицу с именем category_stores).
Мы будем очень благодарны за любой совет (я уже два дня бился головой об стену).
ОБНОВЛЕНИЕ
Я реализовал временное исправление (которое довольно избыточно и не нужно, если рельсы просто придерживаются вышеуказанной проблемы). Я исправил это путем перезаписи метода create
для ActiveAdmin и цикла для вставки данных ассоциации:
controller do
def update
@store = store.find(params[:id])
if @store.update_attributes(params[:store])
@store.categories.delete_all
params[:store][:category_ids].each do |category_id|
@store.categories << Category.find(category_id) unless category_id.blank?
end
redirect_to :action => :index
else
redirect_to :action => :edit, :notice => "Something f'ed up"
end
end
end