Не удается создать нового пользователя с ActiveAdmin - PullRequest
1 голос
/ 14 ноября 2011

Я только что добавил активного администратора в свое приложение rails и не могу создать нового пользователя. Я использую модель пользователя, которую активный администратор создает с несколькими добавленными столбцами, такими как имя и фамилия. Когда я заполняю форму для нового пользователя и нажимаю кнопку «Создать нового пользователя», эта страница обновляется, но не сохраняет моего пользователя и не переходит на повторную страницу с успешным сообщением.

вот моя модель AdminUser

class AdminUser < ActiveRecord::Base
  devise :database_authenticatable,
     :recoverable, :rememberable, :trackable, :validatable

  attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name

end

А вот и мой активный админ класс

ActiveAdmin.register AdminUser do
  index do
    column :first_name
    column :last_name
    column :email

    default_actions
  end

 form do |f|
   f.inputs "User Details" do
     f.inputs :email
     f.inputs :first_name
     f.inputs :last_name
   end
  f.buttons
 end
end

Ответы [ 4 ]

8 голосов
/ 17 декабря 2013

Мое решение:

ActiveAdmin.register User do
  permit_params [:email, :password, :password_confirmation] 

  form do |f|
      f.inputs "User" do
        f.input :email
        f.input :password
        f.input :password_confirmation
      end
      f.actions
    end
end
3 голосов
/ 02 декабря 2011

Забыл добавить этого маленького парня в модель ... fml

after_create { |admin| admin.send_reset_password_instructions }

def password_required?
  new_record? ? false : super
end
2 голосов
/ 01 декабря 2011

Это связано с ошибкой перезагрузки кода в Rails, которая проявляется, когда ваша среда указывает config.cache_classes = false.

Измените это значение на true в вашем config/environments/development.rb, перезапустите сервер, и вы сможете создать своего пользователя.

Однако это не идеально, и один из способов , предложенных здесь , состоит в том, чтобы добавить в ваш config/environments/development.rb следующее:

  config.to_prepare do
    Thread.current.keys.each{ |k| Thread.current[k] = nil if k.to_s =~ /_scoped_methods$/ }
  end

Хотя ошибка, похоже, устранена, я вижу проблему в 3.1.1, которую исправляет приведенный выше код.

Несмотря на то, что это ошибка в Rails, она также регистрируется как ошибка в active_admin , если вы хотите увидеть дальнейшее обсуждение этого вопроса.

0 голосов
/ 22 января 2014

Upvoting @ Danpe's answer.«Пароль» является обязательным для заполнения полем.Поэтому вам нужно добавить его в allow_params, а также запросить пароль в форме.Только тогда он сохранит форму правильно.Вот моя строка параметров разрешения, которая также устраняет другие проблемы с созданием пользователя ActiveAdmin, упомянутые здесь: https://github.com/gregbell/active_admin/issues/2595

controller do
    def permitted_params
      params.permit :utf8, :_method, :authenticity_token, :commit, :id,
                model: [:attribute1, :attribute2, etc]
    end
end
...