Неопределенный метод «переупорядочения» для # с использованием ActiveAdmin
-
28-10-2019 - |
Вопрос
У меня проблема с ActiveAdmin, использующим Ruby ruby 1.9.2p290 и Ruby on Rails 3.2.1.
Я использовал эту вики-страницу для настройки ресурса для AdminUsers, который отлично работает: Ваш первый ресурс администратора: AdminUser
После этого я хотел создать ресурс для моей модели проекта.Миграция для этого выглядит следующим образом:
родовое словоМоя модель проекта:
родовое словоИ это project_controller:
родовое словоФайл admin / projects.rb в настоящее время «пуст»
родовое словоИ после всего этого я получаю следующую ошибку:
родовое словоИ я понятия не имею, в чем проблема ...
Решение
А, я нашел решение. Я не знаю точно, почему произошла ошибка, но мне пришлось изменить свой application_controller.
В application_controller я загрузил все проекты в @projects:
родовое словоЭто сбивало ActiveAdmin с толку.После того, как я изменил это на
родовое словои действие index_controller для
родовое слововсе работало нормально;)
Другие советы
Более простое решение - просто пропустить фильтр в конкретном активном контроллере администратора:
родовое слово Активный администратор производит специальную обработку переменных кода кода.Где @resource
- это соответствующее имя класса, переданное в метод регистрации.Итак, для кода:
имя переменной
родовое словоНельзя присваивать значение переменной с таким именем.Также такие переменные могут быть объектом класса ActiveRecord :: Relation.И то, как @Oliver напишет имя типа @projects_all, - хороший выбор.Использование skip_before_filter тоже решает проблему.
Одну хитрость нужно проверить.Контроллер ресурса может не иметь никаких фильтров.Контроллер ресурса может вообще не существовать.Какое имя фильтра поместить в skip_before_filter?А где такие фильтры?В любом случае используется контроллер приложения по умолчанию.Фильтр может быть установлен на главном контроллере приложения.Сообщение об ошибке этой проблемы совсем не информативно.Поэтому необходимо также проверить контроллер приложения на наличие установленных фильтров.