Я внедряю отличный плагин, который я нашел для присуждения баллов/значков/званий пользователям на основе поведения пользователей. Он называется Merit, и его можно найти здесь: https://github.com/tute/merit.
У меня есть две модели: «Пост» и «Тег». Ассоциации таковы: посты имеют много тегов, теги принадлежат посту.
Я начисляю баллы пользователям, когда они создают «Пост». Я настраиваю плагин для начисления очков всякий раз, когда вызывается действие «создать» контроллера сообщений.
Проблема:
Когда я запускаю сервер, я выполняю свой процесс создания нового сообщения с любыми связанными тегами. Это работает отлично. Он будет работать отлично, пока я каким-либо образом не отредактирую свой код (в контроллере или модели). После редактирования при попытке создать новый пост я получаю эту ошибку:
undefined method `attr_accessible' for Merit::Action:Class
Кажется, не имеет значения, какое редактирование я делаю, если я изменяю основное содержимое файла (это включает простое добавление оператора отладки «помещает»). На данный момент я вообще больше не могу создавать сообщения, так как каждая попытка создать сообщение будет приводить к одной и той же ошибке. Затем, как только я перезапущу WEBrick, он снова заработает (пока я снова не отредактирую код).
Что здесь происходит? Почему простое редактирование моего кода приводит к тому, что атрибут attr_accessible внезапно становится неопределенным в подключаемом модуле Merit, пока я не перезапущу свой сервер?
merit
для поддержки Rails4. Надеюсь, вы знаете, что Rails4 больше не поддерживаетattr_accessible
и использует строгие параметры вместо этого. Если это проект rails3, либо обновите версию rails до 4, либо используйтеprotected_attributes
gem, чтобы временно это исправить. - person VenoM   schedule 29.07.2013